问题标签 [remember-me]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
948 浏览

security - 记住我 - 持续时间应该多长

刚刚看到一个网站,上面写着“记住我 3 周”。雅虎或 Gmail 等一些电子邮件网站提供 2 到 3 周的持续时间。对于一个主要由儿童使用的网站来说,合适的持续时间是多少?

0 投票
2 回答
795 浏览

security - HTTP 记住我身份验证

我正在尝试为用户编写一个简单的 HTTP 记住我的身份验证系统。

我的用户可以这样表示

所以我的想法是我需要创建一个具有无限期(非常长)到期时间的 cookie,它将保存某种类型的信息,使我能够从数据库中获取用户,从而登录用户。

我的第一个想法是将email:password字符串简单地存储为 cookie。我认为这会很好,因为除了用户本身之外,没有其他人可以真正生成这种类型的信息,而且我可以通过简单地比较usernamepassword基于数据库中的内容来轻松检索用户。

但是后来我觉得这不是很好。它将密码摘要有效地转换为第二个密码,该密码以明文形式存储并在每个请求中通过网络传递。

所以我想也许我可以在signature每次用户登录时生成一个,这基本上是一个随机哈希,直接存储在数据库的用户对象中。

用户登录,它生成这个签名并存储,cookie 保存这个签名。每当您访问该网站时,该网站都会检查哪个用户具有该特定签名并将用户登录。注销将有效地删除 cookie,新登录将生成一个新的随机签名。

这种方法是否考虑到任何其他漏洞?

我知道,我可能应该使用已经为此制作的库,但这只是网络安全的一个简单练习。

0 投票
2 回答
1930 浏览

java - jsf 2.0 的“记住我”功能

我正在尝试实现“记住我”/“自动登录”功能。我已经在客户端存储了一个 cookie,但我应该什么时候读取它?例如,如果我尝试在过滤器中执行此操作,我将无法访问我用来访问数据库的应用程序范围的 bean。

这样做的最佳做法是什么?

0 投票
2 回答
677 浏览

asp.net-mvc - 记住我自定义会话对象中的功能

我正在开发一个 asp.net mvc 应用程序,其中我将用户凭据保存在会话对象中。这是在全局 asax 会话启动方法中启动的。并有一个 statik 类来获取或设置。如何添加记住我的功能。是基于asp.net的表单认证吗?

0 投票
5 回答
6663 浏览

java - 创建会话和 cookie 的区别?

我正在使用 Play 开发我的第一个网站!框架,并且有一次我在用户登录时调用此方法:

只需将用户 ID 存储在会话中,我就可以检查它是否在每个请求上设置,工作正常。问题是,一旦浏览器关闭,cookie 就会丢失,用户需要重新登录。我想创建一个“记住我”选项,似乎唯一的方法是创建一个 cookie 并将其与响应一起发送,如下所示:

所以我想知道,当它做完全相同的事情时,创建会话有什么意义?(但不能让我控制 cookie 时间)。我还没有找到的另一件事是如何从请求中读取 cookie?

(而且我知道用 setCookie 创建的 cookie 没有加密,我需要调用Crypto.sign()

0 投票
2 回答
914 浏览

ruby - Rails——“记住我”的能力

我无法理解 Michael Hartl 编写的 Ruby on Rails 教程中“记住我”的实现。他创建了一个带有登录方法的 SessionsHelper 模块,其中包含以下内容:

注意: authenticate_with_salt User 模型中的方法通过第一个参数(id)找到用户,如果定义了用户并且其 salt 等效于第二个参数(salt),则返回用户,否则返回 nil。

我无法理解为什么我们要花这么多时间来测试用户是否已经登录:

如果用户已登录,@current_user则该方法已定义,sign_in因此该方法中的 ||=current_user没有意义。

如果用户未登录,该方法中的 ||= 运算符将返回该current_user方法返回的值user_from_remember_token,但由于 cookies.signed[:remember_token] 将为 nil,User.authenticate_with_salt因此将传递 [nil,nil] 参数并且将返回 nil,因此该current_user方法将返回 nil。

简而言之,如果该current_user方法返回 @current_user(如果它已定义,则返回 nil),那么仅使用传统的访问器方法会不会更简单:

Michael Hartl 的书说这样做是没有用的,因为用户的登录状态会被遗忘。为什么会这样???有人可以解释为什么我们不这样做,而是使用上面发布的更复杂的版本吗?

0 投票
1 回答
2224 浏览

symfony - 如果在浏览器关闭时会话过期,如何让“记住我”工作?

当浏览器在 main 中关闭时,我将会话设置为过期config.yml

然后我按照文档中的描述为登录页面设置“记住我”,即使我选中“记住我”,我也会退出(当我重新启动浏览器时)。

如何在用户关闭浏览器时将 Symfony2 应用程序设置为使 cookie 过期,但如果在登录时选择(通过选中“记住我”)将它们持久保存?

我正在使用 Symfony2- beta5 RC1 RC3。

0 投票
2 回答
2965 浏览

android - 如何设置我的 android webview 以记住新密码?

我正在 web 视图中加载网页(例如 mail.yahoo.com)。输入用户名和密码后,会显示一个 AlertDialog,询问我是否想记住我所做的密码。

问题是在注销后,如果另一个用户想登录,在他输入自己的用户名和密码后,询问是否记住密码的 AlertDialog 不再显示,因此旧的用户名和密码被记住了。

我想要的是一种设置 webview 以记住输入的最新用户名和密码的方法。原因(例如)如果用户第一次输入错误的用户名或密码(在安装应用程序后)并检查它们是否被记住,他将无法修改输入的错误并保存正确的。

0 投票
1 回答
775 浏览

java - Spring Security 中同一资源的 Authenticated 和 UnAuthenticated 视图

我正在尝试制作一个可以由经过身份验证和未经身份验证的用户访问的资源。我也有记住我的身份验证。对于访问资源(页面)的用户,我希望记住我的身份验证尝试登录该人。如果登录不成功,我希望页面仍然显示但行为不同。当我编写安全拦截 url 时,我可以选择“none”或“Role_User”。我可以让 spring 以尝试 ROLE_USER 的方式工作,如果它没有成功,那么它应该优雅地降级为“None”吗?这是我的弹簧配置的外观。

我希望动态页面使用记住我的身份验证来尝试“Role_User”,等待失败然后回退到“无”。有推荐的方法吗?

我还没有了解诸如 isRememberMe() 和链式表达式之类的表达式,但我仍然不知道如何解决这个问题。我想要的是这样的东西。

因为 getAuthorities 查询没有返回 none,所以我需要找到其他方法来执行此操作。

0 投票
3 回答
276 浏览

security - 注销后是否应存储电子邮件地址?

我为一个 Web 应用程序编写了一个插件,它在登录表单中插入了一个“记住我”复选框。我的一位用户对注销后不记得他们表示惊讶!显然,已经注销的人应该保持注销状态,尽管有特定要求,我不会填写密码字段,因为这意味着以明文形式存储密码。

我的问题是,如果用户之前标记了“记住我”框,是否应该为登录表单预先填写电子邮件地址/用户名?
显然,如果在公共计算机上完成,这将有效地将他们的个人详细信息广播给使用该计算机的下一个陌生人,但用户无论如何都不应该在公共计算机上使用“记住我”选项。

这样做的安全考虑是什么?用户是否希望在注销后记住他们的某些详细信息?

编辑:在我看来,浏览器都具有记住表单值和登录详细信息的功能,这可能是不必要的。