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 相关文章推荐
csdn 批量接受好友邀请
Feb 19 Javascript
javascript提取URL的搜索字符串中的参数(自定义函数实现)
Jan 22 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
Mar 20 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
javascript实现五星评价代码(源码下载)
Aug 11 Javascript
JavaScript与jQuery实现的闪烁输入效果
Feb 18 Javascript
第二章之Bootstrap 页面排版样式
Apr 25 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
如何用js判断dom是否有存在某class的值
Feb 13 Javascript
JavaScript设计模式之观察者模式实例详解
Jan 16 Javascript
微信小程序扫描二维码获取信息实例详解
May 07 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实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
python生成requirements.txt的两种方法
2019/09/18 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
幼儿园运动会口号
2014/06/07 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏