Egg 加token

token简介
根据维基百科的定义,JSON WEB Token(JWT,读作 [/dʒɒt/]),是一种基于JSON的、用于在网络上声明某种主张的令牌(token)。JWT通常由三部分组成: 头信息(header), 消息体(payload)和签名(signature)。
使用
1、安装egg-jwt插件

npm install egg-jwt --save

2、启动egg-jwt插件

// {app_root}/config/plugin.js
exports.jwt = {
  enable: true,
  package: "egg-jwt"
};

3、配置jwt 私有的key

// {app_root}/config/config.default.js
exports.jwt = {
  secret: "123456" //自己设置的值
};

4、设置路由

// {app_root}/app/router.js      
  router.get('/', controller.home.index);
  router.post('/user',app.jwt,controller.home.user);
  router.get('/login',controller.home.login);

5、在Login方法里写
‘use strict’;
const Service = require(“egg”).Service;
class DataService extends Service{
async index(name,password){
let reduce = await this.app.mysql.get(“login”,{
name
})
// console.log(name,password)
if(!reduce){
return {
code:-1,
msg:“账户存在”
}
}else{
let flag = await this.app.mysql.insert(“login”,{
name,password
})
const token =this.app.jwt.sign({name,password}, “123456”, {expiresIn: ‘1h’}) //token签名 有效期为1小时
// console.log(flag.insertId)
if(flag.affectedRows===1){
return {
code:1,
msg:“登录成功”,
id:flag.insertId,
token

            }
        }
    }
}

}
module.exports=DataService

在这里插入代码片

6、在前段axios请求中写入

localStorage.setItem("token",res.data.token)

你可能感兴趣的:(Egg 加token)