如何使龙卷风中所有浏览器和计算机的所有用户无效

时间:2016-11-25 10:27:23

标签: python-2.7 cookies tornado

成功验证我正在设置的用户 -

self.set_secure_cookie('user', str(user.id), 1)
self.set_secure_cookie('expires_days', 1)
self.set_secure_cookie('max_age_days', 1)

现在要求注销特定操作的所有用户。为此,我正在尝试 -

self.clear_all_cookies()

但这只是注销当前用户。其他用户不是从其他计算机或浏览器登录的。

我正在使用龙卷风4.3和Python 2.7

我可以这样做吗?

2 个答案:

答案 0 :(得分:0)

您无法删除所有"已连接的#34;用户可以单独处理每个请求,但您可以尝试使其无效,以便在下次请求时将其删除。

一个简单的解决方案是在cookies_valid_from和用户登录中存储Application时间戳,为用户设置created_on时间戳Cookie。您的get_current_user()函数可能如下所示:

def get_current_user(self):
    if self.get_secure_cookie("created_on") < self.application.cookies_valid_from:
        self.clear_all_cookies()
        return None

    return self.get_secure_cookie("user")

具体&#34;注销所有用户&#34;您提到的操作只需将cookies_valid_from时间戳更新为当前时间。

答案 1 :(得分:0)

要使所有内容无效,您只需更改Cookie密码即可。所有现有的cookie都将被忽略,您可以开始发布新的cookie。但是如果你需要比这更细微的东西,你必须将它设计到你的身份验证协议中。例如,不要只将用户ID存储在cookie中,存储会话ID并跟踪数据库或缓存中当前有效的会话ID。然后,您可以通过从数据库中删除其ID来使用户会话无效。