如何使用nodejs设置授权标头并表达

时间:2016-01-04 10:39:38

标签: node.js express mongoose jwt swig-template

我正在按照本教程设置一个包含nodejs,express,mongoose和swig模板的站点: Authenticate a Node.js API with JSON Web Tokens

在本教程中,作者使用Postman在标题中设置标记。 我已经用Google搜索了几天,以了解如何在我网站的标题中设置jwt令牌,但它对我不起作用。

1 个答案:

答案 0 :(得分:7)

如果您希望客户端在其请求标头中包含令牌,则可以使用带有express的cookie解析器。 (HTML5 Web存储是另一种选择)。关于Cookies:

Express可以设置响应标头,告诉客户端“将令牌添加到cookie”。

客户端使用令牌设置cookie后,令牌将位于客户端的每个请求的请求标头中。让我们一点点烘焙

npm install cookie-parser

撒上一些

var cookieParser = require('cookie-parser')
app.use(cookieParser())

访问并设置Cookie:

app.use(function (req, res, next) {
  var cookie = req.cookies.jwtToken;
  if (!cookie) {
    res.cookie('jwtToken', theJwtTokenValue, { maxAge: 900000, httpOnly: true });
  } else {
    console.log('let's check that this is a valid cookie');
    // send cookie along to the validation functions...
  }
  next();
});

您可能希望使用Cookie(或最终使用的任何方法)来执行这些操作:

  • 设置cookie以在用户通过身份验证时保留令牌。
  • 在允许访问受保护之前检查cookie标头值 路由。
  • 如果用户没有令牌,则发回未经授权的状态 当他们试图访问需要令牌的api路由时。