gpt4 book ai didi

session - 为什么 GITkit.idToken 应该被 Session Token 取代?

转载 作者:行者123 更新时间:2023-12-04 18:41:22 26 4
gpt4 key购买 nike

GitkitDemo on GitHub

Now use the idToken to create a session for your user. To do so, you should exchange the idToken for either a Session Token or Cookie from your server. Finally, save the Session Token or Cookie to maintain your user's session.



在问题答案的示例代码中 Validating OAuth2 token obtained on Android device via Google Identity Toolkit (GitkitClient) on 3rd-party backend (custom python backend, non-gae)?通过 Android 获得的 token 的后端服务器 token 验证似乎足以确保拥有一个有效、安全的 token ,在与后端的任何后续通信期间,该 token 可以添加到 Android 客户端 header 中。

那么为什么要推荐给 you should exchange the idToken for either a Session Token or Cookie from your server ?

这是由于 idToken 的大小(接近 1KB,IIRC)吗?

存在哪些建议(最简单和最安全的方法)来生成这样的 session token ?

除了大小之外,是否还有其他反对将 idToken 用作 session token 的论据?

session token 可以是 idToken(Python 中的 idToken.split(".")[0])的第一部分(“ token ”)吗?还是有效载荷( idToken.split(".")[1] )?或者可能创建 idToken 的 SHA1? 编辑:好的,我意识到使用 JTW header 会很愚蠢,但是有效负载至少有几个变量( iatexp 以及可能还有 user_id ),但是签名?

gitkit.js 创建的 token /cookie ("gtoken") 是 idToken 本身,是否也应将其替换为 session token ?

最佳答案

建议使用您自己的 session token /cookie 有几个原因:

1) 大多数现有的 web 服务器框架都有自己的 session 管理机制(cookie 生成与过期时间等)。常见的做法是生成一个随机字符串作为 session ID,并将服务器端用户事件与 session ID相关联。服务器然后指示浏览器设置 session id 的 cookie。更换该机制是不必要的,有时非常困难。

2)正如您所提到的,IdToken 比普通 session cookie 大得多。

3) 目前,Google Identity Toolkit IdToken 将在两周后过期。

除了这些考虑之外,IdToken 作为 session token 是足够安全的。一定不要使用 IdToken 的任何子部分作为 session cookie,因为攻击者可以轻松地创建一个假的。

如果您的服务器发布自己的 session cookie,您应该在用户 session 终止后删除 gtoken,以便 gitkit.js 的登录按钮状态与您的服务器保持同步。

关于session - 为什么 GITkit.idToken 应该被 Session Token 取代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31899040/

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