前后端分离, 前端用vue这类框架时中间件的问题
发布于 7 年前 作者 jacobsun 3644 次浏览 来自 问答

我挂载了一个 isNotLogin的自定义中间件到’/register’上, 本意是当用户已经登陆时, 如果试图post注册信息, 是要返回错误信息的.

  isNotLogin(req, res, next){
    if(req.session.user){
      res.redirect('/');
    } else{
      next();
    }
  }

如果是传统网站, 可以直接重定向到首页或个人页面, 但现在前端用的vue. 请问我这个中间件要如何处理呢? 我想过简单的

res.json({err:true}).

请问这种情况一般都是如何处理的呢, 是在这里response呢, 还是在中间件里设置一个错误flag, 之后在路由回调里统一返回呢, 如果是错误flag这个信息要添加到哪里呢? 添加到request上吗? 谢谢

2 回复

首先 你前台vue通过axios或者ajax走后台 ‘/register’的时候 没有session肯定返回一个json信息,之后处理一下json 存在就写本地localStorage,vue-router使用meta 判断下 localStorage 不存在 路由 router。push(‘/’)

通过vue-router的meta对象可以知道 那些前台路由需要登录,那些不需要登录 ,你做了前后分离,把express的路由当作 Api就好了 前台路由当作内容限制,登录跳转一些逻辑就好了

回到顶部