【问题标题】:Angular.js Express.js Passport logout redirectionAngular.js Express.js Passport 注销重定向
【发布时间】:2023-03-18 01:25:01
【问题描述】:

示例代码(在 angular-fullstack 上使用本地护照):

app.get('/logout', function(req, res) {
    req.logout();
    console.log('testing123');
    res.redirect('/login');
}

每当执行此代码时,URL 都会显示 /logout 片刻,然后返回主页面。注销功能似乎正在相应地运行,我尝试使用 Angular 设置路由客户端以保存空白 html 模板以进行确认。该错误位于重定向中,来自导航栏上的链接。此外,浏览器(不应该)或终端的控制台中也不会出现日志。

尝试的解决方案:

1.) 添加路由客户端创建测试模板,确保app.get(url/logout)已经被调用,logout()已经被实现。

2.) 将重定向路由更改为另一个模板。 (效果一样)

3.) 检查说明客户端和快速服务器的未注册路由的路由恢复。这是通过在被实例化和测试的“/logout”路由的两侧包含来完成的。

非常感谢任何帮助。谢谢。

分辨率:
$http 获取请求,成功后,使用 $location.path() 重定向到登录

【问题讨论】:

    标签: angularjs node.js express passport.js mean-stack


    【解决方案1】:

    如果路由被 xhr 请求命中,应用程序将不会去任何地方,因为您不只是重定向 ajax 调用浏览器,您必须在 Angular 应用程序上实现监听注销调用响应并清除标题和重定向浏览器

    【讨论】:

    • 所以如果我理解正确的话,我会废弃注销调用服务器端,监听对注销 xhr 请求的响应客户端,并从浏览器中清除我的标题?难道我不能一起避免xhr,然后用onclick事件清除客户端的标题吗?
    • 如果您不需要做任何服务器端工作,例如更新注销时间或禁用令牌或清除 cookie,您可以这样做,这一切都取决于您的架构
    • 如果我试图将中间件添加到app.get('/', middleware, function(req, res) { res.send(200); } 中间件检查会话用户的地方,同样的原则是否适用?我是否必须处理从客户端到登录页面的重定向?
    • 如果您的身份验证逻辑依赖于处理程序或中间件函数,则与客户端无关。所以是的,一切都会保持不变
    猜你喜欢
    • 2017-06-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多