nodejs egg-jwt 生成token

简介: nodejs egg-jwt 生成token
//下载 插件
npm install egg-jwt --save
// {app_root}/config/plugin.js  配置插件
exports.jwt = {
  enable: true,
  package: "egg-jwt"
};
// {app_root}/config/config.default.js 设置密钥
exports.jwt = {
  secret: "123456" //自己设置的值
};

自己画的流程图:


react/src/views/login.jsx:

  post('/login',{username,psw}).then(res => {
  console.log(res) // 后端返回的token
  window.localStorage.setItem('token',res)
})

egg / app / controller / login.js:

'use strict';
const Controller = require('egg').Controller;
class LoginController extends Controller {
  async index() {
    const { ctx } = this;
    let {userName,psw} = ctx.request.body;
    let result = await this.service.login.index(userName,psw) // 交给service处理生成 token
    ctx.body = result;
  }
}
module.exports = LoginController;

egg / app / service/ login.js:

module.exports = app => {
  class LoginService extends app.Service {
    async index(userName,psw) {
        if(userName&&psw){
            const token = app.jwt.sign({ userName,psw }, app.config.jwt.secret,{expiresIn:'24h'});
            /*
            * sign({根据什么生成token})
            * app.config.jwt.secret 配置的密钥
            * {expiresIn:'24h'} 过期时间
      */
            return token
        }
    }
  }
  return LoginService
}

egg / app/ router.js:

router.get('/getData',jwt, controller.getData.index); // jwt 指明这个请求需要token才能收到返回结果

拦截器:

//拦截
request.interceptors.request.use((config) => {
    config.headers.authorization = `Bearer ${window.localStorage.getItem("token")}`;
    return config;
}, (err) => {
    console.error(err);
});
//拦截响应
request.interceptors.response.use((response) => {
    return response.data;
}, (err) => {
    console.log(err);
});
目录
相关文章
|
1月前
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
|
4月前
|
前端开发 JavaScript 数据安全/隐私保护
无感刷新token(vue2+nodejs版本)
无感刷新token(vue2+nodejs版本)
|
13天前
|
安全 关系型数据库 MySQL
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
22 3
|
4月前
|
JavaScript 前端开发 数据安全/隐私保护
无感刷新token(vue3与nodejs版本)
无感刷新token(vue3与nodejs版本)
|
4月前
|
前端开发
node使用jsonwebtoken生成token与验证是否过期
node使用jsonwebtoken生成token与验证是否过期
node借助jsonwebtoken生成token以及验证token是否过期
node借助jsonwebtoken生成token以及验证token是否过期
|
9月前
|
存储 数据采集 前端开发
Node.js----前后端的身份认证(session与jwt)(一)
Node.js----前后端的身份认证(session与jwt)
|
9月前
|
存储 JSON 前端开发
Node.js----前后端的身份认证(session与jwt)(二)
Node.js----前后端的身份认证(session与jwt)(二)
|
存储 JavaScript 安全
带你一文使用NodeJS、JWT、Vue搞定基于角色的授权
在本教程中,我们将完成一个关于如何在 Node.js 中 使用 JavaScript ,并结合 JWT 认证,实现基于角色(role based)授权/访问的简单例子。
|
算法 JavaScript Shell
重学Node.js及其框架(Express, Koa, egg.js) 之 token的使用
重学Node.js及其框架(Express, Koa, egg.js) 之 token的使用