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 相关文章推荐
javascript 面向对象编程 聊聊对象的事
Sep 17 Javascript
html文本框提示效果的示例代码
Jun 28 Javascript
JavaScript中数据结构与算法(二):队列
Jun 19 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
Sep 10 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
Dec 01 Javascript
jquery按回车键实现表单提交的简单实例
May 25 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
Dec 04 Javascript
全面解析vue中的数据双向绑定
May 10 Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 Javascript
使用layer模态框给新页面传值的方法
Sep 27 Javascript
layer.confirm()右边按钮实现href的例子
Sep 27 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 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
php懒人函数 自动添加数据
2011/06/28 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
最大K个数问题的Python版解法总结
2016/06/16 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
Python做文本按行去重的实现方法
2016/10/19 Python
python 全文检索引擎详解
2017/04/25 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
企划经理的岗位职责
2013/11/17 职场文书
大学专科生推荐信范文
2013/11/23 职场文书
领导证婚人证婚词
2014/01/13 职场文书
小学生成绩单评语
2014/12/31 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
python基础之类属性和实例属性
2021/10/24 Python
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
Python作用域和名称空间的详细介绍
2022/04/13 Python