jwt 实现持久化登录

原理
第一次登录时会返回一个经过加密的token
下一次访问接口时(携带登录返回给你的token)会对token进行解密 如果解密正确 证明你已经登录 再把过期时间延长
// 首先 npm init -y 一键初始化// 引入 express 下载 npm install expresslet express = require('express');let app = express();// 用于跨域 下载 npm install corslet cors = require('cors');// 解析带请求体(post,put)的数据 下载 npm install body-parserlet bodyParser = require('body-parser');// 引入 jwt 全称 json web token 下载 npm install jsonwebtokenlet jwt = require('jsonwebtoken');// 解析 json 格式app.use(bodyParser.json())// 解析 form 格式app.use(bodyParser.urlencoded({extended:true}))app.use(cors())// 进行登录持久化验证的接口// 访问这个接口时 一定要携带 token 前端页面每切换一次就访问一下这个接口 问一下我有没有登录 或者登录过期app.post('/validate',function(req,res){    let token = req.headers.authorization;    // 验证token的合法性    jwt.verify(token,'sxq',function(err,decode){        if(err){            res.json({                msg:'当前用户未登录'            })        }else{            // 证明用户已经登录 只要用户操作就会有过期时间            res.json({                username:decode.user,                token:jwt.sign({username:decode.user},'sxq',{                    // 过期时间                    expiresIn:'1h'                })            })        }    })})// 持久化登录的原理// 第一次登录时会返回一个经过加密的token// 下一次访问接口时(携带登录返回给你的token)会对token进行解密 如果解密正确 证明你已经登录 再把过期时间延长// 模拟一个登录接口 username passwordapp.post('/login',function(req,res){    let {username} = req.body    res.json({        // sign 参数 加密的对象 加密的规则         token:jwt.sign({username},'sxq',{            // 过期时间            expiresIn:'1h'        }),        username    })})// 接口app.listen(3000)