我正在使用该路由来检查令牌是否有效。如果不是我将用户路由到登录页面。我想让用户知道他们是以提醒或页面注销的。
用户点击 链接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
文件发送消息,以便我可以在前端显示错误(或创建警报)?
但是,由于这发生在中间件中,并且是程序中其他页面触发验证检查的其他路径,因此登录页面无法进行检查,因此我无法在此处获得响应以提醒用户。
如果有任何方法可以按照我的方式实现这一目标,或者还有其他方法可以解决这个问题吗?
非常感谢
答案 0 :(得分:0)
而不是做
res.redirect();
为什么不发送
之类的错误消息res.status('401').send({error:'Invalid Token'});
然后,您可以在api调用的 errorHandler()中执行必要的步骤。
答案 1 :(得分:0)
您可以返回包含触发警报消息的方法的对象(如果要更改视图,则返回HTML中的更改)。然后使用前端的.Object.method。