博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs 中 token 的使用
阅读量:3959 次
发布时间:2019-05-24

本文共 1268 字,大约阅读时间需要 4 分钟。

前言

token 验证,在设计登录注册和一些权限接口时发挥作用。以nodejs为例,谈一谈jsonwebtoken的使用。

正文

一. 安装

$ npm i jsonwebtoken

二. 使用

  1. 首先,需要提供一个密匙,也就是一个字符串,用于token的生成和验证。这个密匙一般会声明为全局变量,也就是在启动文件app.js中,方便在各个路由板块中共同使用。
//将变量挂载到app上,app.get是取变量app.set('secret', 'zedhello99')
  1. 在路由文件中,引入jsonwebtoken模块以及密匙
const jwToken = require('jsonwebtoken')const secret = app.get('secret')
  1. 生成token,根据用户的id或是其它信息,以及密匙,来生成token并发送给前端。
token = jwToken.sign({
_id: user._id}, secret)
  1. 编写一个中间件函数,来判断token是否存在,以及格式是否合法。
    PS:前端发来的验证信息,格式应该为Bearer ${token}
const verifyToken = (req, res, next) => {
const bearerHeader = req.headers.authorization if (typeof bearerHeader !== 'undefined') {
req.token = bearerHeader.split(' ')[1] next() } else {
res.status(401).send({
message: '请先登录' }) }}
  1. 在用到token验证的接口,加入中间件函数,并且调用模块方法verify验证token是否正确
router.post('/logout', verifyToken, (req, res) => {
jwToken.verify(req.token, secret, (err, data) => {
if (!err) {
//token正确,做些事情 res.json({
message: '退出登录', data}) } else{
//token不正确,返回401 res.status(401).send() } }) })
  1. 一个需要token验证的接口,需要前端和后端的双重验证,来保证接口的安全性。若前端使用vue,则在导航守卫中判断token状态。

结语

如果对你有帮助的话,请点一个赞吧

转载地址:http://crozi.baihongyu.com/

你可能感兴趣的文章
以前的文章全部移除了。
查看>>
几首歌
查看>>
蝴蝶泉边
查看>>
编码转换
查看>>
freerice
查看>>
Does your mother know
查看>>
《写出质量好软件的75条体会》暨答案ZT [转自monkyy的blog]
查看>>
关于详细设计
查看>>
POJ2838,Sliding Window(单调队列)
查看>>
牛客练习赛50,B tokitsukaze and Hash Table(STL+输入输出挂)
查看>>
POJ3728,The merchant(倍增LCA+分治)
查看>>
2019 ICPC Malaysia National,E. Optimal Slots(01背包变形)
查看>>
洛谷P1638 逛画展(双向队列)
查看>>
牛客练习赛51,D(二分图匹配)
查看>>
POJ2892,Tunnel Warfare(线段树维护连续区间)
查看>>
POJ3468,A Simple Problem with Integers(线段树-区间查询-区间更新)
查看>>
快速幂(递归)
查看>>
CodeForces 1101A Minimum Integer(思维)
查看>>
CodeForces 1102A Integer Sequence Dividing(思维)
查看>>
CodeForces 1087B Div Times Mod(思维)
查看>>