Passport-local和WWW-Authenticate标头

时间:2016-01-09 17:31:36

标签: rest authentication http-authentication passport-local www-authenticate

我正在使用护照本地策略来处理需要验证的简单API。我在所有路由之前使用中间件来处理对应用程序的访问

var verifyAuth = function(req, res, next) {
    if (req.originalUrl === '/signup' || req.originalUrl === '/login') {
        return next();
    }
    if (req.isAuthenticated()) {
        return next();
    }
    if (req.accepts('text/html')) {
        return res.redirect('/login');
    }
    if (req.accepts('application/json')) {
        res.set('WWW-Authenticate', '???');
        return res.status(401).send({err: 'User should be logged'});
    }
};
app.use(verifyAuth);
  1. 如果用户订阅或登录,我允许访问这些路线
  2. 如果用户已登录,我允许访问
  3. 如果用户未登录并且他在浏览器中(例如),我会重定向到/ login
  4. 如果用户未登录且他在其他设备中使用Accept Header ='application / json',则应用程序返回401
  5. 我读过使用401,发送带响应的WWW-Authenticate标头可能会很有趣。他们建议使用Basic Auth或OAuth作为值。我应该使用哪种valude作为本地策略?我认为发送一个带有URL登录的位置也很有意思?

0 个答案:

没有答案