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 相关文章推荐
Java 正则表达式学习总结和一些小例子
Sep 13 Javascript
AngularJS 2.0新特性有哪些
Feb 18 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
Aug 10 Javascript
Web打印解决方案之普通报表打印功能
Aug 29 Javascript
angularjs中ng-bind-html的用法总结
May 23 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
Jun 08 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
Aug 14 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
Aug 22 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
express默认日志组件morgan的方法
Apr 05 Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 Javascript
Element Cascader 级联选择器的使用示例
Jul 27 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
一个MYSQL操作类
2006/11/16 PHP
php中看实例学正则表达式
2006/12/25 PHP
php防注
2007/01/15 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python获取元素在数组中索引号的方法
2015/07/15 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
Django框架 信号调度原理解析
2019/09/04 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
python中entry用法讲解
2020/12/04 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
优秀员工自荐书范文
2013/12/08 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
2015年女职工工作总结
2015/05/15 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技