我按照本教程设置了一个包含nodejs,express,mongoose和swig模板的站点: 使用JSON Web令牌验证Node.js API
在本教程中,作者使用Postman在标题中设置标记.我已经谷歌搜索了几天,以了解如何在我的网站的标题中设置jwt标记,但它不适合我.
如果您希望客户端在其请求标头中包含令牌,则可以使用带有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路由时没有其令牌,则发回未授权状态.