美文网首页
jwt的token认证完整创建流程

jwt的token认证完整创建流程

作者: 大南瓜鸭 | 来源:发表于2020-10-27 11:50 被阅读0次

第一步:在后端下载插件

$ npm i jsonwebtoken

第二步:在后端routes的users.js页面引入jwt,并在需要的部分生成令牌返回

//引入
var jwt = require('jsonwebtoken');
//登录时:
router.post('/login',(req,res,next)=>{
  var body = req.body;
  UserModel.findOne(body).then((info)=>{
    if(info){
      // 生成加密的token令牌
      jwt.sign({ username : body.username }, 'abcdef', function(err, token) {
        res.json({code : 0,errmsg : 'ok',token});});
    }
    else{
      res.json({
        code : -1,
        errmsg : '登录失败'
      });
    }
  }).catch((err)=>{
    res.json({
      code : -1,
      errmsg : '登录失败'
    });
  });
});

第三步:token验证

router.get('/info',(req,res,next)=>{
  var token = req.headers.token;
  //进行token解码,验证是否是合法的token
  jwt.verify(token, 'abcdef', function(err, decoded) {
    if(err){
      res.json({
        code : -1, 
        errmsg : 'token错误'
      });
    }
    else{
      res.json({
        code : 0,
        errmsg : 'token正确',
        username : decoded.username
      });
    }
  });
});

第四步:在前端接收token并进行本地存储

// 把token存到本地
localStorage.setItem('token' , res.data.token);

第五步:在router的index.js中布置路由守卫

//全局前置守卫,所有的路由都会走到这里
router.beforeEach((to, from, next) => { 
  if( to.path == '/login' || to.path == '/register' ){
    next();
  }
  else{
    axios.get('/api/users/info').then((res)=>{
      if(res.data.code == 0){
        next();
      }
      else{
        next('/login');
      }
    }).catch(()=>{
      next('/login');
    });
  }
})

第六步:在main.js中设置拦截器

axios.interceptors.request.use(function (config) {
  // 每次发起axios的时候,就会把token带给后端
  config.headers.token = localStorage.getItem('token');
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

相关文章

  • jwt的token认证完整创建流程

    第一步:在后端下载插件 第二步:在后端routes的users.js页面引入jwt,并在需要的部分生成令牌返回 第...

  • jwt介绍,以及在node和koa中的应用

    JWT JSON Web Token( JWT)是目前最流行的跨域认证解决方案。 一般的跨域认证方式 流程如下: ...

  • JWT认证原理分析

    基于session的认证 JWT认证规则 JWT(Json Web Token) JWT原理 签发算法 校验算法 ...

  • 【javaweb】JWT的常用方法

    github.java-jwt基于JWT的token身份认证方案 1、maven库 2、设置算法 3、创建并签名t...

  • JWT简记

    JSON Web Token(JWT)是目前最流行的跨域认证解决方案。 跨域认证问题及传统解决方案 传统认证流程 ...

  • .NET Core5.0 JWT鉴权SSO单点登录

    JWT JWT全称“JSON Web Token”,是基于JSON的用户身份认证的令牌。可跨域身份认证,所以JWT...

  • 浅析JWT

    1.JWT(JSON Web Token) JSON Web Token (缩写JWT) 是目前最流行的跨域认证解...

  • JSON Web Token

    JSON Web Token (JWT)是一种基于 token 的认证方案。 JSON Web Token 的结构...

  • 学习笔记 - JWT

    JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。 1. 一般的认证流程 用户向服务器发...

  • 带你了解JWT

    @TOC 什么是JWT 认证方式 在JWT之前,我们用过Sssion来进行认证,也使用过Token认证。那么这两种...

网友评论

      本文标题:jwt的token认证完整创建流程

      本文链接:https://www.haomeiwen.com/subject/ppatvktx.html