使用egg.js框架开发项目,使用中间件做拦截器app/middleware/auth.js中做简单的判断session中user是否为空对象,登陆页面不做拦截module.exports = options => { return function* auth(next) { yield next; if(this.path=='/'||this.path=='/login'){ return; } if(!this.session.user.username){ this.redirect('/', 'login.index'); } };};然后再app/config/config.default.js中添加中间件的配置config.middleware=[ 'auth' ];在登陆的api中有一系列的判断,然后会返回相应的code 和message, this.ctx.body = { 'code':code, 'message':message };但是添加了中间件后前台点击登陆,登录api中也能打印出相应的code和message,但是前台发送登录请求的回调函数接收到的相应参数的body成了当前登陆页面
1 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
这里逻辑没有问题啊,后端收到登录请求,进入auth中间件,发现session中没有user,请求重定向,你这里的重定向只是把登录这个请求的URL给重定向了,所以会返回html的内容.
应该是验证登录在进需要登录页面的时候就进行重定向吧
添加回答
举报
0/150
提交
取消