我对Angular不太熟悉,但是一项项目已经交给了我,所以我开始着手处理。然而,我遇到了与状态管理相关的问题。在通过WCF Restful服务进行身份验证后,会向用户提供一个Token。所以我可以用以下三种方法来处理:
- Session-storage - Cookies - Local storage 以上方法存在的问题是:
- 如果我使用会话状态,则在浏览器中打开新标签时它将无效,因此无法检查Token是否存在。 - 如果我使用本地存储,则如果用户关闭浏览器并远离他/她的系统,然后稍后有人打开他的浏览器,这显然会构成安全威胁。 - 如果我使用Cookies,那么它在现在也可以正常工作,直到我遇到了一个奇怪的问题:我的子组件通过使用canActivateChild函数通过authguard进行了身份验证。但是,当我在新标签中粘贴了URL(包括子组件路径)时,两个页面都是相同的。当我从第二个标签中单击“退出”按钮时,它没有删除Cookies。
注意:每次单击“退出”按钮时都会调用函数,但它在第二个选项卡中不起作用,在第一个选项卡中工作正常。
- Session-storage - Cookies - Local storage 以上方法存在的问题是:
- 如果我使用会话状态,则在浏览器中打开新标签时它将无效,因此无法检查Token是否存在。 - 如果我使用本地存储,则如果用户关闭浏览器并远离他/她的系统,然后稍后有人打开他的浏览器,这显然会构成安全威胁。 - 如果我使用Cookies,那么它在现在也可以正常工作,直到我遇到了一个奇怪的问题:我的子组件通过使用canActivateChild函数通过authguard进行了身份验证。但是,当我在新标签中粘贴了URL(包括子组件路径)时,两个页面都是相同的。当我从第二个标签中单击“退出”按钮时,它没有删除Cookies。
注意:每次单击“退出”按钮时都会调用函数,但它在第二个选项卡中不起作用,在第一个选项卡中工作正常。
ngx-cookie-service
出了问题。 - SiddAjmera