Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在RESTWeb应用程序中处理身份验证_Angularjs_Rest_Authentication - Fatal编程技术网

Angularjs 在RESTWeb应用程序中处理身份验证

Angularjs 在RESTWeb应用程序中处理身份验证,angularjs,rest,authentication,Angularjs,Rest,Authentication,我使用AngularJS作为前端框架,在后端使用REST服务器(使用Spring)。我的问题是在这种情况下如何处理身份验证 所以我有一个带有电子邮件、密码和“记住我”选项的登录屏幕。 如果我选中记住我,我将用户名和密码存储在cookie中 在加载页面时,如果我找到RememberMeCookie,我将使用详细信息自动登录,并获取一个身份验证令牌,并用于整个会话。如果我没有记住我的选项,我会要求用户输入用户名和密码登录 我的问题是,如果我使用不同的选项卡打开受保护的页面,如果我没有选择“记住我”选

我使用AngularJS作为前端框架,在后端使用REST服务器(使用Spring)。我的问题是在这种情况下如何处理身份验证

所以我有一个带有电子邮件、密码和“记住我”选项的登录屏幕。 如果我选中记住我,我将用户名和密码存储在cookie中

在加载页面时,如果我找到RememberMeCookie,我将使用详细信息自动登录,并获取一个身份验证令牌,并用于整个会话。如果我没有记住我的选项,我会要求用户输入用户名和密码登录

我的问题是,如果我使用不同的选项卡打开受保护的页面,如果我没有选择“记住我”选项,它会要求再次登录。但我不想有那种行为。我想保留所有选项卡的会话信息


我该怎么做呢?

首先,我想你不应该将密码存储在cookie中,而应该存储从auth获得的令牌。这更安全,因为当撤销密码比较复杂时,您可以轻松地撤销令牌

你应该看看哪个似乎正是你所需要的。唯一的问题是,即使你关闭它(就像一块饼干),它也会持续存在。可能要确保在关闭应用程序时将其删除(使用javascript卸载)

要确保卸载时删除localStorage,应跟踪打开的选项卡数量,然后仅在卸载时删除最后一个选项卡的身份验证:)。它不是最后一个选项卡,您只需减少选项卡的本地存储计数器。。。应该有用,但远远不够优雅


与其自己编写代码,还不如使用更深入一点的代码:D

谢谢你的回复。我测试了HTML5会话存储。但对于多个选项卡来说,它并不是持久的。我正在使用Chrome浏览器。谢谢你的安全提示。我所做的:sessionStorage.setItem(“a”,“b”)来自一个选项卡,sessionStorage.getItem(“a”)来自另一个选项卡。我在两个标签上都使用了相同的域。哇,我很确定,只是尝试了一下,实际上是不起作用。。。对不起。。。嗯,我会更仔细地看一看,如果我发现任何相关的东西,我会告诉你。是的,一开始我还认为它会起作用。但它似乎不起作用。谢谢你帮助我。它会起作用,但很难看。另外,如果我只是刷新页面,本地存储计数将增加。您好。这个问题仍然悬而未决,您能否设法找到一种简单/美观的方法来实现这一点迪玛:对不起,我找不到解决办法。我也在寻找一个好的解决办法。目前,我计划使用服务器会话,直到找到解决方案。