繁体   English   中英

nodeJS,angularJS应用程序中的页面请求上的服务器身份验证

[英]Server authentication on page request in nodeJS, angularJS Application

我正在使用passport.js进行身份验证。 我的要求是,如果未登录某个页面,则任何人都不能访问该页面(例如,“ / restricted”)。

现在,在我的应用程序中,任何人都可以直接访问“ localhost:3000 /#/ restricted” URL。

我可以停止此操作,并且仅在未经身份验证的情况下,通过在所有重定向上使用Rorschach120重定向中的解决方案,仅允许登录的用户访问该页面。

但这是在客户端完成的,并不安全,因为任何人都可以从浏览器访问此代码。

因此,我需要页面请求发送到服务器,我在如何知道用户是否使用passport.js登录时尝试了moka的解决方案

app.js中

app.get('/restricted', loggedIn, function(req, res, next) {
// req.user - will exist
// load user orders and render them
});

其中loggedIn()函数检查用户是否已登录。

但是从来没有调用过这种中间件,任何人都仍然可以访问“受限”页面。 我该怎么办,这样才能被调用?

我是AngularJS和NodeJS的新手。 我在这里做错什么了吗? 任何帮助将不胜感激。

您可以为此目的使用中间件。

app.get('/secure-route', secureMiddleware, myMethod)

let secureMiddleware = function(req, res, next) {

    authCheck(...)
        .then(function(result) {
            // pass
            next()
        })
        .catch(function(err) {
            res.status(401).json({
                code: 401,
                message: 'restricted route'
            })
        })
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM