我有一个应用程序,在初始加载时,用户被重定向到登录页面。一旦用户通过身份验证,他就会被带到主页。在验证用户时,还会为浏览器设置HttpOnly
cookie。所以现在要删除用户每次刷新应用程序或在另一个选项卡中打开它时的登录麻烦。我正在向我的应用程序路由的beforeModel挂钩内的服务器发送一个身份验证请求。这将按预期验证用户和页面加载。但是,如果服务器响应有401(因为用户已注销或cookie过期),应用程序将重定向到登录页面。一切正常,并且符合预期。
但是很难解决这个问题。
如果用户提供路径为/ login,我需要等待身份验证请求完成后再决定呈现登录模板,或者如果他已经登录则重定向到主屏幕。
< / LI>在执行目标网址中的model挂钩之前,还要等待验证调用完成。我看到模态请求进入服务器,即使响应是401进行身份验证调用。
一个很好的例子是 github 页面,一旦你登录并进入/登录页面,它们就会带你到你的主页。
答案 0 :(得分:0)
经过一些路线实验。 我提出了这个解决方案。
/login
。这将在应用程序路径的最可能的beforeModel
钩子中完成。beforeModel
,model
或afterModel
挂钩之一对API进行异步调用,并在返回语句中调用API,否则模板将加载无论如何。注意:
1.您可以将该网址存储在可在整个应用中访问的某些service
中。您还可以将服务存储其他登录信息以供将来使用。
2.在第(2)点中,确保在重定向到/login
之前进行一些检查,以防不必要的重定向。假设路由是在内部转换而不是通过页面加载。 3.不要忘记在您的身份验证请求中处理401个案例,或者它可能只在页面上显示任何内容,并且在控制台中出现错误。
希望这有帮助