后重定向我有针对前端,需要在用户签署了一些自定义表单。 因此我使用keystone.js自己的“requireUser”中间件。 用户登录后,要访问该站点,默认行为是在“/ keystone”显示管理用户界面 - 但是我想重新导向回到前一个前台页面,以便用户可以开始填写表单。
什么工作
在keystone.js,具有完全相同的名称的文件中,可以设置
keystone.set('signin redirect', '/');
其登入后重定向到主页。
我需要什么
不过,我需要的是设置URL重定向到动态,但我这样做的时候,该功能不会被调用:
keystone.set('signin redirect', function(req, res){
var url = req.session.returnTo || '/';
res.redirect(url);
});
的REQ。 session.returnTo参数被设置在前面提到的文件中的“middleware.js”,从前端页面服用req.path属性:
exports.requireUser = function (req, res, next) {
if (!req.user) {
req.flash('error', 'Please sign in to access this page.');
req.session.returnTo = req.path;
res.redirect('/keystone/signin');
} else {
next();
}
};
我的临时解决方法
在梯形/管理/服务器/路由/ signin.js我延长了当地人的重定向属性对象从
redirect: keystone.get('signin redirect'),
到
redirect: (typeof keystone.get('signin redirect') === 'string') ?
keystone.get('signin redirect') : keystone.get('signin redirect')(req, res),
我知道这不是一个理想的解决方案,但是由于我仍然在学习keystone.js,你知道处理这个问题的更好方法吗?
注意:设置“signout重定向”键(既字符串或作为第二个参数的函数)时相同的重定向策略的作品,所以我想这一定是一些被遗忘了实施?
感谢
嘿我看到你对项目问题的评论,但没有时间回到它,随时添加解决方案从线程,所以这个问题有一个解决方案 – hajn