gpt4 book ai didi

php - OAuth 和 Cookie

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:43 25 4
gpt4 key购买 nike

我目前正在使用 2.0 实现 OAuth 身份验证三足策略。我遇到了一个问题:

使用 Oauth 登录时记住客户端 session 的最佳方式是什么。

目前我正在做的是在客户端设置一个 cookie 来匹配我在服务器上的 session ID。这当然等同于正常的基于 cookie session 的登录。然后在 session 中,我跟踪使用授权码时获得的访问 token 并将其交换为访问 token 。

如您所见,状态通过 cookie/ session ID 在客户端和服务器之间保持同步,访问 token 仅保存在服务器中并与 session ID 相关。

但是我读到这是不安全的,并且 OAuth 应该是无状态(restful)风格,所以不需要 cookie,特别是如果客户端是机器客户端而不是浏览器客户端。一些资源提到客户端应该存储所有必要的凭据,以便对应用程序的任何请求进行身份验证。这是否意味着我应该将访问 token 存储在浏览器的 header 中?来自重定向的授权代码怎么样,它是否也应该存储在浏览器的 header 中? (并且这些代码/ token 是否应该在浏览器的 header 上加密/签名)(您将如何使用 PHP 执行此操作?)

这样的资源:http://sitr.us/2011/08/26/cookies-are-bad-for-you.html说客户端丰富的 JavaScript 应用程序可以跟踪访问 token 并在每个 XHR 请求中传递它?但当然不是每个客户端都是 javascript 应用程序,例如机器客户端。

最佳答案

您不应将 token 存储在常规 session 中。无状态的想法是每个请求都携带所有必需的验证信息。

当然,这可能需要在客户端进行更多工作,以确保所有请求都携带所有必需的数据。

REST 无状态的好处之一是分布式实现更简单。每个请求都包含所有必要的数据,因此您甚至不需要两次访问同一台服务器,每个服务器都可以自行验证。

关于php - OAuth 和 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999598/

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