0

我正在尝试为使用 Happstack 框架编写的 Web 应用程序实现简单的基于密码的身份验证。我的用户提供了一个 ID 和密码,我使用 bcrypt 对其进行哈希处理并通过数据库进行检查。如果散列密码在该 ID 的数据库中,则用户因此被认证。

一旦我验证了好用户的身份,我想发出一个会话 cookie,标记该用户在会话期间已登录。(我不是在尝试实现“持久”、“记住我”之类的 cookie;我只是想了解用户是否已登录会话。)

会话 cookie 的存在是否足以对用户进行身份验证?如果不是,还需要什么其他信息?我可以将 cookie 的(散列)值存储在我的数据库中,但在这一点上,我看不出我将做什么与持久登录 cookie 有什么不同。

简而言之,我是否可以使用会话 cookie 来识别经过身份验证的用户,如果可以,应该怎么做?

(我已经能够了解如何以及为什么将会话 cookie 标记为“安全”和“仅限 HTTP”,但我不知道该怎么处理这该死的东西!)

4

1 回答 1

1

您可以将happstack-authenticate用于现有的密码登录解决方案。如果您仍然想自己推出,但是您需要happstack-clientsession包用于用户无法读取或写入的会话 cookie。标记为“安全”的普通 cookie 仅意味着它只能通过 HTTPS 工作,但用户仍然可以读取和写入 cookie。使用 clientsession cookie 将使用服务器端密钥进行加密。您可以将 clientsession 用于“记住我”和会话登录;它仅取决于您设置的内容sessionCookieLife。如果您使用mkSessionConf的是默认值Session,那就是您想要的。

于 2012-08-21T23:55:08.240 回答