快速jwt邮差身份验证实现持久登录
原则
第一次登录时会返回一个加密的令牌,下次访问接口(登录时携带您的令牌)时会对令牌进行解密。如果正在解密,则表示您已经登录,然后延长到期时间。
下载
Npm init -y //一键初始化NPM install express-s//下载expressnpm install cors //跨域中间件NPM install body-parser//body-parser中间件用请求正文(post,put)解析数据NPM install jsonwebtoken//持久登录jwt json web token基本配置
//引入express Let express=require(' express ')让CORS=require ('CORS ')让body parser=require(' body-parser ')让jwt=require ('jsonwebtoken ')让banner=require('。/banner ')//获取服务器let app=express()app . use(CORS())app . use(body parser . JSON())app . use(body parser . URL encoded({ extended : false }))//listen后面是port app.listen (8000,function () {console.log ('ok')})来模拟登录界面
app.post('/login ',函数(req,Res) {let {username}=req。body console . log(username)RES . JSON({//加密方法//Sing参数1:加密对象参数2:加密规则参数3:对象标记:jwt。sign ({username :username},' ABCD ',{//到期时间在:' 1h'})中到期),username,代码:200 })Postman模拟发送POST请求
收到的数据
获取令牌
登录持久性验证
将令牌写入标头
//访问此界面时,登录持久认证界面必须访问token(每次切换首页时,访问此界面,询问我是否登录/登录是否已过期)//首先访问登录界面获取token,然后访问此查看是否成功。app.post ('/validate ',function (req,RES){//visit token let token=req . head .//console . log(token)//验证token和decode token的有效性,方法与加密jwt.verify (token,' ABCD ',function (err,Decode){ if(err){ RES . JSON({ msg: '当前用户未登录' }) }else {//证明用户已登录RES . JSON({ username 3360 Decode . username,msg : '符号({Username3360Decode。Username}、' ABCD '、{//expires : ' 1h ' })} })})有登录账号,持久登录成功
设置登录到期时间
令牌: jwt . sign({ username 3360 decode . username },' ABCD ',{//如果过期时间为1秒,则在3360' 1s '内过期)})以获取令牌
设置标题信息
验证到期时间是否生效
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:快速jwt邮差身份验证实现持久登录是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。