当前位置: 首页 > 面试题库 >

如何使用户登录我的网站几个月?

邵飞鸿
2023-03-14
问题内容

我正在使用OpenID。我如何做到使用户即使关闭浏览器窗口也能长时间保持登录状态?

如何存储和访问用户的User对象?

基本上,我想我只是不太了解会话如何在Java中工作。


问题答案:

因此,你实际上想要一个“在此计算机上记住我”选项吗?这实际上与OpenID部分无关。这是一种与语言无关的方式:

  • 首先创建至少包含cookie_iduser_id列的数据库表。如有必要,还添加cookie_ttlip_lock。我猜这些列名不言而喻。

  • 在第一次登录(如果必要的话只能用“记住我”选项选中),产生一个长期的,独特的,难以猜测的密钥(这是没有办法代表了与用户)cookie_id和其html" target="_blank">存储在DB和一起user_idcookie_id用已知的cookie名称(例如)存储cookie 的as cookie值remember。赋予Cookie较长的使用寿命,例如一年。

  • 在每个请求上,请检查用户是否登录。否则,请检查cookie_idcookie名称关联的cookieremember。如果它在那里并且根据数据库有效,则自动登录与关联的用户,user_id并再次推迟cookie的年龄,如果有的话,还推迟数据库中的cookie年龄cookie_ttl

用Java / JSP / Servlet术语HttpServletResponse#addCookie()来添加cookie和HttpServletRequest#getCookies()获取cookie。你可以在中进行所有的首次检查,以Filter侦听所需的资源,例如,/*或者受到更多限制。

关于会话,你在这里不需要它。它的寿命比你所需的寿命短。当它具有有效的remembercookie 时,仅使用它放置登录用户或“找到”用户。这样,Filter用户就可以只检查其在会话中的存在,而不必每次都检查Cookie。



 类似资料:
  • 问题内容: 我想访问网站https://myoffice.bt.com的某些页面,该页面需要使用Java进行用户身份验证。我们必须先登录才能访问页面。我写了以下代码。 但是它给出了以下错误。 如果我取消注释get.setFollowingRedirects行,则会出现另一个错误。 有人能帮我一下吗?我们可以使用HttpClient进行基于表单的身份验证吗? 谢谢。 问题答案: 首先-请不要命名您的

  • 问题内容: 我看到了另一个问题:如何使用Python登录网页并检索cookie以供以后使用? 但是,对该答案进行直接修改对我不起作用,因此我想知道如何实现我的目标。 为了提供上下文,我尝试登录,然后从以下页面中提取播放列表的名称: 我认为对于知道自己在做什么的人来说,这应该很简单。一些基本的代码可以登录到该网站并访问受密码保护的页面,这非常棒,如果您能用一两句话来解释代码中的每一行在做什么,那会更

  • 问题内容: 我正在编写一个Java程序来登录学校用来发布成绩的网站。 这是登录表单的网址:https : //ma- andover.myfollett.com/aspen/logon.do 这是登录表单的HTML: 我正在尝试使用以下代码登录: 该程序将填充用户名框,然后单击“登录”按钮,但不会填充密码框。我可以进行哪些更改以使该程序正常运行?我怀疑密码框的“ type =’password’”

  • 问题内容: 在此网站上,您可以输入您的学生卡号,然后显示该卡上还剩多少钱。我想使用JSOUP获得信息。这是我当前的代码,但是不起作用, 我没有太多经验,所以我不知道在哪里寻找问题。一些想法: 我应该使用还是? 在使用chrome devoloper工具时,发布数据是我使用功能发送的所有数据。但是,如果发送时出现错误,为什么? 我应该发送解密或加密的数据吗?(两者均在chrome devoloper

  • 问题内容: 我正在尝试使用Python登录到此页面。 我尝试使用另一篇文章中描述的步骤,并获得了以下代码: 但这给了我以下输出: 我究竟做错了什么? 问题答案: 我建议使用精彩的模块。 下面的代码将使您登录到该站点,并在会话期间将cookie保留下来。

  • 问题内容: 我想用Java登录到一个网站。我使用的是org.apache.http,我已经写了 尽管我仍然无法登录,但它正确发送了我测试过的帖子表格。我要登录的网站是http://www.xtratime.org/forum/ 关于此的任何想法或是否有其他方法? 问题答案: 在提交页面之前,请对密码进行编码()。您应该在代码中执行相同的操作。 该属性的值与您的代码()不匹配。您应该将发布请求发送到