express + jwt + postMan验证实现持久化登录
更新时间:2019年06月05日 09:14:52 作者:阿西瓜
这篇文章主要介绍了express + jwt + postMan验证实现持久化登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
原理
第一次登陆时会返回一个经过加密的token,下一次访问接口(携带登录返回你的token)的时候,会对token进行解密,如果解密正在进行,说明你已经登录,再把过期时间延长
下载
npm init -y // 一键初始化 npm install express -s // 下载express npm install cors // 跨域中间件 npm install body-parser // body-parser中间件 解析带请求体的数据(post,put) npm install jsonwebtoken // 持久化登录 jwt json web token
基本配置
// 引入express
let express = require('express')
let cors = require('cors')
let bodyParser = require('body-parser')
let jwt = require("jsonwebtoken")
let banner = require("./banner")
// 拿到服务器
let app = express()
app.use(cors())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:false}))
// listen 后面跟着的是端口
app.listen(8000,function(){
console.log('OK')
})
模拟一个登陆的接口
app.post('/login',function(req,res){
let {username} = req.body
console.log(username)
res.json({
// 进行加密的方法
// sing 参数一:加密的对象 参数二:加密的规则 参数三:对象
token:jwt.sign({username:username},'abcd',{
// 过期时间
expiresIn:"1h"
}),
username,
code:200
})
})
postMan模拟 发送POST请求

接收到数据

得到token

登录持久化验证
把 token 写入header

// 登录持久化验证接口 访问这个接口的时候 一定要访问token(前端页面每切换一次,就访问一下这个接口,问一下我有没有登录/登陆过期)
// 先访问登录接口,得到token,在访问这个,看是否成功
app.post('/validate',function(req,res){
// 访问 token
let token = req.headers.authorization;
// console.log(token)
// 验证token合法性 对token进行解码,解码方式要和加密方式一样
jwt.verify(token,'abcd',function(err,decode){
if(err){
res.json({
msg:'当前用户未登录'
})
}else {
// 证明用户已经登录
res.json({
username:decode.username,
msg:'已登录'
})
token:jwt.sign({username:decode.username},'abcd',{
// 过期时间
expiresIn:"1h"
})
}
})
})
已有登录账号,持久化登录成功

设置登录过期时间
token:jwt.sign({username:decode.username},'abcd',{
// 如果过期时间为1秒
expiresIn:"1s"
})
获得 token

设置头部信息

验证 过期时间生效

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
如何用npm命令删除开发项目中的node_modules文件夹
每个项目都会产生一个node_modules,每个node_modules少则几十兆,多则几百甚至上千兆,随着时间的积累,维护项目的增加,整个项目目录体积会越来越大,这篇文章主要给大家介绍了关于如何用npm命令删除开发项目中的node_modules文件夹,需要的朋友可以参考下2023-12-12
Node.js基础入门之path模块,url模块,http模块使用详解
这篇文章主要为大家介绍了Node.js中的三个模块(path、url、http)的使用详解,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下2022-03-03
nodejs基于WS模块实现WebSocket聊天功能的方法
这篇文章主要介绍了nodejs基于WS模块实现WebSocket聊天功能的方法,结合实例形式分析了nodejs使用WS模块进行WebSocket通信实现聊天功能的具体操作技巧,需要的朋友可以参考下2018-01-01


最新评论