时间:2021-05-28
原理
第一次登陆时会返回一个经过加密的token,下一次访问接口(携带登录返回你的token)的时候,会对token进行解密,如果解密正在进行,说明你已经登录,再把过期时间延长
下载
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基本配置
// 引入expresslet 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
设置头部信息
验证 过期时间生效
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
文档概览本文基于express、express-session实现了简易的登录/登出功能,完整的代码示例可以在这里找到。环境初始化首先,初始化项目express
本文介绍了Spring-boot结合Shrio实现JWT的方法,分享给大家,具体如下:关于验证大致分为两个方面:用户登录时的验证;用户登录后每次访问时的权限认证
本文介绍了AngularJs用户登录的交互及验证、阻止FQ处理,具体如下1.静态页面搭建及ng的form表单验证实现:登录2.定义用户登录的控制器,在控制器中使
1,快速实现授权验证什么是JWT?为什么要用JWT?JWT的组成?这些百度可以直接找到,这里不再赘述。实际上,只需要知道JWT认证模式是使用一段Token作为认
JPA(JavaPersistenceAPI)Java持久化API,是Java持久化的标准规范,Hibernate是持久化规范的技术实现,而SpringData