如何在记住我的cookie后“自动登录”用户?

时间:2012-11-29 15:24:52

标签: jsf login remember-me

我需要在我的JSF网站上实现“记住我”功能,我一直在研究这个主题,试图找到最佳实践。我找到了很多答案,但我仍然有一个基于我使用的技术和我在数据库中存储用户密码的方式的问题。

总结我发现的内容

  • 创建一个包含用户和难以猜测的长序列的数据库表。
  • 当用户使用remember me选项登录时,在db表上生成一个注册表,并向用户发送一个cookie,其中包含用户名和序列号。
  • 如果同一用户未登录,并且根据数据库拥有有效的Cookie,自动登录该用户。

我如何实际登录用户

基于Java EE标准,我使用JAAS并存储MD5版本的用户密码。 我通过HttpServletRequest类的登录方法登录我的用户,该方法需要用户名和密码,以便验证身份验证并设置用户主体。


基于这两个事实,如果我需要用户名和密码才能登录用户,如何根据此最佳实践进行自动登录?

1 个答案:

答案 0 :(得分:2)

  

如果我需要用户名和密码才能登录用户,如何根据此最佳做法自动登录?

根据“记住我”cookie的值,直接从数据库中获取用户名和密码。然后,您可以将它们提供给HttpServletRequest#login()方法。

请注意,“记住我”cookie的值绝对不应包含有关用户名,密码或ID的任何提示。它应该是一个绝对随机的值。 java.util.UUID在这里很有帮助。

另见: