1

我发现在 angularjs 中实现“记住我”的功能有困难。我已经浏览了几个关于 stackoverflow 的博客,但没有得到解决方案。

假设我在数据库中存储了 3 个用户名和密码。

[{username:1, password:1}, {username:2, password:2}, {username:3, password:3}]

现在每次用户登录时,服务器端都会返回一个令牌。基于这个令牌,我想实现我的记住我的功能。

下面是我编写的用于在我的服务中将用户名和密码存储在 cookie 中的代码。

 if (rememberLogin) {
     $cookieStore.put("userName", login);
     $cookieStore.put("password", password);
 }

这是我在登录页面加载时初始化的代码

 function init() {
     if ($cookieStore.get("userName")!==undefined && $cookieStore.get("password")!==undefined){
         self.emailAddress=$cookieStore.get("userName");
         self.password=$cookieStore.get("password");
     }  
 }

使用这种方法,我只能记住一个用户,而不能记住其他用户,而且我知道将密码存储在 cookie 中是不安全的。

请帮助我或建议我一些高质量的代码来实现这一点。任何帮助表示赞赏。谢谢

4

2 回答 2

2

$cookieStore已弃用,请尝试移至$cookies

$cookies.putObject('key', value);
$cookies.getObject('key');
$cookies.remove('key');

当然 - 在 cookie 中存储密码是您必须避免的事情,即使在您的学校或私人项目中也是如此。了解如何使用SessionsPHPSESSID cookie

于 2016-02-01T12:14:07.170 回答
0

就记住我的功能而言,您可以在一次登录尝试中一次从一个用户登录,当第一个用户已经在会话中(浏览器会话)时,任何第二个用户都没有机会登录。您可以存储尽可能多的内容除非您没有删除前一个用户的 cookie,否则您在 cookie 中的用户信息是您想要的。一个简单的场景是第一个用户登录并将这些详细信息保存在浏览器 cookie 中,另一个用户无法从该浏览器登录,直到第一次注销. 每个网站也这样做,2个不同的用户无法从一个浏览器登录。目前还不清楚你想要实现什么。据我了解,您的问题是您在第一个用户注销或重新启动服务器后没有清除以前的 cookie。尝试

$cookies.remove("userInfo")
于 2016-07-27T17:32:35.237 回答