NodeJS Basic Auth - 它存储在前端的哪个位置?

时间:2017-08-10 20:38:58

标签: angularjs node.js

所以我正在使用https://www.npmjs.com/package/basic-auth,一切正常,但我无法弄清楚我的生活如何!

我的设置很简单,当您进行身份验证时,您是管理员,否则您不是。我想要做的是根据用户是不是管理员,在前端显示某个导航栏。

NodeJS MiddleWare代码:

exports.login = function (req, res, next) {
 console.log(req.header);

 function unauthorized(res) {
   res.set('WWW-Authenticate', 'Basic realm=Authorization Required');
   return res.sendStatus(401);
 };

  var user = basicAuth(req);

  if (!user || !user.name || !user.pass) {
     return unauthorized(res);
  };

   if (user.name === 'Admin' && user.pass === 'myPassword') {

   return next();
   } else {
   return unauthorized(res);
  };
};

我已经检查了本地存储,cookie,我能想到的所有内容但是一旦登录了基本身份验证,就会自动地出现在标题中。如果我使用不正确的凭据登录,则会返回未授权的对象并将其记录在前端,但如果我正确进行身份验证,则无法看到任何对象。

非常感谢任何帮助。如果您需要任何其他代码等,请告诉我们!

谢谢!

1 个答案:

答案 0 :(得分:0)

根据您的代码,如果(!user || !user.name || !user.pass),那么您return unauthorized(res);之前定义了unauthorised函数,并负责将状态和标头发送回前端。

但是在成功登录(user.name === 'Admin' && user.pass === 'myPassword')的情况下,您只有return next(),下一个功能将转移到代码中的下一个中间件。

为了达到你想要的效果,你应该在前端返回一些东西:

if (user.name === 'Admin' && user.pass === 'myPassword') { 
 res.end('Access granted');
}