为了账号安全,请及时绑定邮箱和手机立即绑定

EggJs使用中间件做拦截器出现问题

EggJs使用中间件做拦截器出现问题

沧海一幻觉 2018-12-21 19:25:35
使用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的内容.
应该是验证登录在进需要登录页面的时候就进行重定向吧

查看完整回答
反对 回复 2019-01-24
  • 1 回答
  • 0 关注
  • 462 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信