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


Posted in Javascript onJune 05, 2019

原理

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

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

接收到数据

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

得到token

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

登录持久化验证

把 token 写入header

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

// 登录持久化验证接口 访问这个接口的时候 一定要访问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"
   })
  }
 })
})

已有登录账号,持久化登录成功

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

设置登录过期时间

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

获得 token

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

设置头部信息

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

验证 过期时间生效

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
Nov 06 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
Feb 24 Javascript
JavaScript控制Session操作方法
Jan 17 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
AngularJS的表单使用详解
Jun 17 Javascript
JQ技术实现注册页面带有校验密码强度
Jul 27 Javascript
基于jQuery实现二级下拉菜单效果
Feb 01 Javascript
原生js的数组除重复简单实例
May 24 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
Jun 04 Javascript
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
vue用addRoutes实现动态路由的示例
Sep 15 Javascript
Vue 用Vant实现时间选择器的示例代码
Oct 25 Javascript
Vue实现微信支付功能遇到的坑
Jun 05 #Javascript
JS实现数组删除指定元素功能示例
Jun 05 #Javascript
vue实现PC端录音功能的实例代码
Jun 05 #Javascript
vue-cli3添加模式配置多环境变量的方法
Jun 05 #Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
Jun 05 #Javascript
js实现随机8位验证码
Jul 24 #Javascript
Vue中全局变量的定义和使用
Jun 05 #Javascript
You might like
PHPMailer 中文使用说明小结
2010/01/22 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
动态加载iframe
2006/06/16 Javascript
js 数组操作代码集锦
2009/04/28 Javascript
页面中iframe相互传值传参
2009/12/13 Javascript
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
el-form 多层级表单的实现示例
2020/09/10 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
Python 移动光标位置的方法
2019/01/20 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
Python调用Redis的示例代码
2020/11/24 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
测绘工程个人的自我评价
2013/11/23 职场文书
法学院毕业生求职信
2014/06/25 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
公司催款律师函
2015/05/27 职场文书
学历证明范文
2015/06/16 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
判断Python中的Nonetype类型
2021/05/25 Python