gpt4 book ai didi

playframework - Play Framework 强制执行单个并发用户登录 session

转载 作者:行者123 更新时间:2023-12-02 02:22:00 25 4
gpt4 key购买 nike

有没有人必须确保 Play Framework 的给定用户 ID/密码只存在一个登录 session ? (这样不同计算机上的 10 个用户不能同时使用相同的用户名/密码登录)。我能想到的两种可能性是:

1) 向数据库中的 User 类添加一个时间戳变量,该变量在每次 Controller 访问时更新为当前时间。注销时将时间戳设为空,如果时间戳没有超时期限(可能是 30 分钟),则不允许该用户登录。如果用户的浏览器或计算机崩溃,30 分钟内无法登录,那将会很痛苦。

2) 像 Java EE Servlets 创建一个 sessionId cookie,在登录时将其与用户记录一起保存,并且只允许包含它的请求(直到注销或超时),但这将具有与 #1 相同的缺点。

欢迎提出任何想法。

最佳答案

就个人而言,我会选择选项 2。

如果您将用户 ID 保存到您的 session cookie 中,然后将 cookie id 与您的用户一起存储,那么您将在用户和他们处于事件状态的计算机之间建立链接。您还需要存储上次事件时间,以便您可以在特定超时期限后清除用户的 cookieId。

浏览器/计算机崩溃的问题可以通过更改 application.conf 中的 session cookie 超时来解决

application.session.maxAge=1h

参见 - http://www.playframework.org/documentation/1.2.3/configuration#application.session.maxAge

最后,您将不得不处理从不同位置登录的人,因此您可能需要一个“从所有其他位置注销我”选项,就像 GMail 一样。

关于playframework - Play Framework 强制执行单个并发用户登录 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7705729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com