Pep*_*zza 7 python cookies wsgi
已经有令牌正常工作,这是这样设置的:
session_cookie = SimpleCookie()
session_cookie['key'] = any_string_value
session_cookie['key']["Path"] = '/'
headers = []
headers.extend(("set-cookie", morsel.OutputString())
for morsel
in session_cookie.values())
start_response(status, headers)
Run Code Online (Sandbox Code Playgroud)
我也能读取令牌并提取我需要的信息:
# Get cookies
cookies = request.get_cookies()
# Get current token from cookies
token = cookies['token'].value
Run Code Online (Sandbox Code Playgroud)
现在,设置cookie过期的最佳方法是什么,我知道有两个可能的键:
我怎么知道令牌是否过期或者什么是管理过期令牌的最佳方式?
非常感谢!
当您尝试获取令牌时,如果该令牌不存在,您可以知道该令牌是否已过期。
\ntoken = cookies[\'token\'].value #this will not exist\nRun Code Online (Sandbox Code Playgroud)\n当过期日期过后,浏览器将删除 cookie 以及与之相关的所有内容。
\n这样,在许多实现中,您甚至可以删除 cookie,或者例如注销用户,但将 user_id cookie 的到期日期设置为过去的某个日期(例如负数)。
\n现在,据我了解,您需要一个策略来检测服务器端过期的令牌,这可以通过双重验证来完成。例如,尝试为每个令牌存储唯一标识符,并且当您读取令牌时,服务器端尝试检查它是否已过期。用户也可以操纵他的 cookie,因此永远不要盲目信任 cookie 来存储重要数据或进行任何 user_id 简单验证。
\n我希望我有所帮助。
\n编辑
\n来自rfc2109
\n\n\n\nMax-Age=delta-秒\n可选。Max-Age 属性定义 cookie 的生命周期(以秒为单位)。增量秒值是十进制非负整数。\n 经过 delta-seconds 秒后,客户端\n应丢弃 cookie。值为零意味着应立即丢弃 cookie。
\n
\n\nExpires 指令告诉浏览器何时删除 cookie。\n源自 RFC 1123 中使用的格式,日期以 \n\n\xe2\x80\x9cWdy, DD Mon YYYY HH:MM:SS GMT\xe2\ 的形式指定x80\x9d,[29] 指示此 cookie 过期的确切\n日期/时间。作为将 cookie 过期设置为绝对日期/时间的替代方案,RFC 6265 允许使用 Max-Age 属性将 cookie\xe2\x80\x99s 过期设置为未来秒数间隔(相对于浏览器收到\ncookie 的时间。
\n
我建议使用 max-age,因为可以节省设置日期等方面的一些麻烦。您只需计算一个间隔。
多读一点,我发现 IE < 9 不支持 max-age,这意味着首选过期
\n\n这应该有帮助;-)
\n| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |