基于Node.js实现)身份验证(jsonwebtoken + cookie)与一键退出功能
基于Node.js实现)身份验证(jsonwebtoken + cookie)与一键退出功能基本流程1.客户端(浏览器)进行注册或者登录的时候,将信息发送给服务器端2.服务器利用这个信息签发一个令牌2.服务器将这个令牌存入cookie里发送给客户端(浏览器)3.在需要进行身份验证的地方调用这个令牌的信息进行验证jsonwebtoken的安装在命令终端里输入,npm install jsonwebt
基于Node.js实现)身份验证(jsonwebtoken + cookie)与一键退出功能
基本流程
1.客户端(浏览器)进行注册或者登录的时候,将信息发送给服务器端
2.服务器利用这个信息签发一个令牌
2.服务器将这个令牌存入cookie里发送给客户端(浏览器)
3.在需要进行身份验证的地方调用这个令牌的信息进行验证
jsonwebtoken的安装
在命令终端里输入,
npm install jsonwebtoken
如果安装不成功可以试试淘宝镜像(在上面代码的后面加上淘宝镜像)
--registry=https://registry.npm.taobao.org
具体流程
一.令牌的签发与验证
1.签发
jwt.sign(payload, secretOrPrivateKey, [options, callback])
返回值是加密过后的令牌
payload(有效载荷)通俗讲就是对于接收者有用的数据
secretOrPrivateKey (密钥)通俗讲就是加密所用的钥匙
options: 可选项
algorithm (算法)(default: HS256)
expiresIn(过期时间): expressed in seconds or a string describing a time span zeit/ms.
…具体的可看官方文档:https://www.npmjs.com/package/jsonwebtoken
callback(回调函数)
Eg:
为了方便使用我将令牌的签发放在里user表的成员方法里
2.验证
参数与上面一样
jwt.verify(token, secretOrPublicKey, [options, callback])
callback(回调函数)里有两个参数 err,decodeToken(解密过后的令牌)
二.将令牌存入cookie
当用户进行登录或者注册的时候将令牌存入cookie,同时将令牌信息存入user信息的tokens里
(每进行一次登录就会有一个令牌签发)
三.身份验证
通过解密过后的令牌信息(里面有用户的id),找到这个用户,再比较里面的令牌信息是否一致,如果一致就通过,如果不一致就表明令牌失效。
四.退出所有登录
通过清空tokens,使上面的身份验证失败,从而退出所有客户端的登录
其它具体功能可以查找官方文档:https://www.npmjs.com/package/jsonwebtoken
五.有什么意见或建议欢迎提出
更多推荐
所有评论(0)