gpt4 book ai didi

ruby - Sinatra/Warden/Ruby - 如何确保我的用户只能通过单个 session 登录?

转载 作者:数据小太阳 更新时间:2023-10-29 07:39:33 25 4
gpt4 key购买 nike

我正在构建的站点要求用户一次只能通过一个 session 登录。如果用户在当前已登录的情况下尝试从其他浏览器或机器登录站点,则需要拒绝他们的登录尝试。

我考虑过将数据库中的用户对象标记为已登录,但这对我来说似乎很脆弱,因为如果用户实际上没有正式注销,那么该标记会持续存在并且用户会被不公平地拒绝。为了解决这个问题,我必须定期运行某种清理任务以确保重置这些标志,这可能会引入各种其他问题。

我使用 Sinatra 作为核心框架,使用 Warden 作为身份验证管理器。是否有针对此类要求的“最佳实践”策略?

最佳答案

这确实不是身份验证问题,而是“当经过身份验证的用户在他们已经登录的情况下尝试登录时,我如何处理发生的事情”——所以您需要先回答这个问题。当有人已经登录时你想做什么?给最新的 session 优先权?也就是说,关闭同一用户的旧 session ?

关于ruby - Sinatra/Warden/Ruby - 如何确保我的用户只能通过单个 session 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20793649/

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