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)