我可以从路由/中间件提醒用户吗?

时间:2016-12-23 10:49:56

标签: javascript html node.js express routes

我正在使用该路由来检查令牌是否有效。如果不是我将用户路由到登录页面。我想让用户知道他们是以提醒页面注销的。

用户点击 链接A (将其带到网站上的其他网页)会发生什么情况,该路由会调用validate.js文件:< / p>

route.js

var checkToken = require('../validate.js');

router.use(checkToken.checkToken);
  

然后调用validate.js文件,该文件进行HTTP调用以进行检查   如果令牌有效,如果它没有将用户重定向到登录   页:

validate.js

var checkToken = function(req, res, next) {
if (config.enableTokenValidation) {

var usersToken = req.user.token;

validateToken(receivedToken, req.requestId, function(err, response, body) {
  if (err || response.statusCode != 200) {

    console.log("Error, token is not valid");
    res.redirect("/auth/logout/");
  } else {

    return next();
  }

});

如何向loginView.js文件发送消息,以便我可以在前端显示错误(或创建警报)? 但是,由于这发生在中间件中,并且是程序中其他页面触发验证检查的其他路径,因此登录页面无法进行检查,因此我无法在此处获得响应以提醒用户。

如果有任何方法可以按照我的方式实现这一目标,或者还有其他方法可以解决这个问题吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

而不是做

res.redirect();

为什么不发送

之类的错误消息
res.status('401').send({error:'Invalid Token'});

然后,您可以在api调用的 errorHandler()中执行必要的步骤。

答案 1 :(得分:0)

您可以返回包含触发警报消息的方法的对象(如果要更改视图,则返回HTML中的更改)。然后使用前端的.Object.method。