最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

express + jwt + postMan验证实现持久化登录

来源:动视网 责编:小采 时间:2020-11-27 21:55:35
文档

express + jwt + postMan验证实现持久化登录

express + jwt + postMan验证实现持久化登录:原理 第一次登陆时会返回一个经过加密的token,下一次访问接口(携带登录返回你的token)的时候,会对token进行解密,如果解密正在进行,说明你已经登录,再把过期时间延长 下载 npm init -y // 一键初始化 npm install express -s //
推荐度:
导读express + jwt + postMan验证实现持久化登录:原理 第一次登陆时会返回一个经过加密的token,下一次访问接口(携带登录返回你的token)的时候,会对token进行解密,如果解密正在进行,说明你已经登录,再把过期时间延长 下载 npm init -y // 一键初始化 npm install express -s //


原理

第一次登陆时会返回一个经过加密的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

设置头部信息

验证 过期时间生效

文档

express + jwt + postMan验证实现持久化登录

express + jwt + postMan验证实现持久化登录:原理 第一次登陆时会返回一个经过加密的token,下一次访问接口(携带登录返回你的token)的时候,会对token进行解密,如果解密正在进行,说明你已经登录,再把过期时间延长 下载 npm init -y // 一键初始化 npm install express -s //
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top