我有一个登录屏幕,我想通过检查数据库中的凭据来验证用户。我知道大多数浏览器都可以记住密码,但是如何使用浏览器 cookie 实现记住我复选框?我正在使用 sign.jsp 和 Auth servlet (doPost) 以及带有 https 的基本访问身份验证。
我知道我需要将用户 ID + 令牌存储到 cookie 中。我从另一个线程中找到了以下代码。
在您的 servlet 响应处理程序(doPost、doGet 等)中,按以下方式创建一个 cookie -
if(remember_me_is_checked)
{
Cookie c = new Cookie("userid", userId.toString());
c.setMaxAge(24*60*60);
response.addCookie(c); // response is an instance of type HttpServletReponse
}
要阅读它们,你可以使用这样的东西 -
Cookie[] cookies = request.getCookies(); // request is an instance of type
//HttpServletRequest
boolean foundCookie = false;
for(int i = 0; i < cookies.length; i++)
{
Cookie c = cookies[i];
if (c.getName().equals("userid"))
{
string userId= c.getValue();
foundCookie = true;
}
}
我的问题是,在我将用户信息存储到cookies后,如何在用户下次登录时自动登录?我不明白的是我只有用户的登录 ID 存储在 cookie 中,我怎么能在没有密码的情况下登录用户。我可以使用什么方法?
如果可能,请具体解释或提供一些代码。我对这种东西真的很陌生。
此致