运维开发网

后台系统登录鉴权步骤记录 · 和叶的空间

运维开发网 https://www.qedev.com 2020-07-17 12:35 出处:网络 作者:运维开发网整理
1. 路由里写鉴权 1 router.post(‘/api/login‘, app.passport.authenticate(‘local‘, { successRedirect: ‘/api/login/authCallback‘ })); 2. // config/plugin.js 同时安装egg-passport模块 exports.passport = { enable: true,

1. 路由里写鉴权

1

router.post(‘/api/login‘, app.passport.authenticate(‘local‘, { successRedirect: ‘/api/login/authCallback‘ }));

2. // config/plugin.js 同时安装egg-passport模块

exports.passport = {

enable: true,

package: ‘egg-passport’,

};

3.app.js里导入 导入鉴权逻辑

module.exports = app => {

require(‘./init/session’)(app)

require(‘./init/passLocal’)(app)

};

4.init/passLocal.js 里加入鉴权的逻辑

5.init/session.js 里有model为Session的函数,所以要新建model在app文档夹下,new Schema({ })

6.调试时发现post请求,但是url后面还是带着参数,仔细查看文档,原来是axios请求参数为data时会自动序列化为json格式的,在post 的body里,export const fqLogin = {

async login(data) { // 注意: 这个地方要写data,axios会序列化为json

return await http({

url: ‘/myApi/api/login’,

method: ‘post’,

data

})

}

}

7. init/passLocal.js里面。先去验证req.body里验证码和session.code 是否一致,如果一致,才往下走查找用户的逻辑

8. 查找用户时,调用ctx.service.users.login(user) 服务,于是,在service下面建users.js文档,里面其实就是调用数据库方法查找数据,如果找到了,那么登录成功。自此,鉴权登录逻辑完成。

原文:大专栏  后台系统登录鉴权步骤记录 · 和叶的空间

0

精彩评论

暂无评论...
验证码 换一张
取 消