oauth - 确定 oauth 回调中的用户 ID

标签 oauth

OAuth 流程是:

  1. 对于 OAuth 身份验证,应用程序(也称为 OAuth 客户端)将用户重定向到 authorize_url

  2. 这会将用户重定向到 oauth 服务器的 Web 服务器,用户在其中授予 网络应用程序访问他/她的帐户

  3. OAuth 服务器将用户重定向到由 应用程序(又名 oauth 客户端)。此时,回调来自 OAuth 服务器,因此没有会​​话 ID 或 session 哈希。应用程序如何确定调用 post-oauth 回调的用户是什么?

我认为它的工作方式是:

  1. 当您将用户重定向到 authorize_url 时,您会附加某些内容 查询字符串的参数 ?id=xxx

  2. 当 OAuth 服务器重定向到由 客户端,HTTP 消息的参数之一将是 参数附加到步骤 1 中的查询字符串。

但是,这似乎不适用于我尝试连接的 OAuth 服务器。

有什么建议吗?

最佳答案

用户验证您的请求 token (通过输入用户名和密码)后,您应该会收到发回的 oauth_token 和 oauth_verifier 参数,并将其附加到回调中。

如果这有效,但您在回调中指定的其他参数未包含在回调中,则可能是提供商简单地忽略您在请求 token 步骤中发送的 oauth_callback 。

如果是这种情况,提供者将引用预定义的回调,通常是您在获取消费者 key 和 secret 时指定的回调。

OAuth 提供者可以忽略授权流程中发送的回调(签名目的除外)。一些提供商这样做是为了增加额外的安全层。

关于oauth - 确定 oauth 回调中的用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4577586/

相关文章:

authentication - oAuth Authentication Twitter - 如何自动登录

asp.net-core - Azure Devops Oauth 身份验证 : Cannot get access token (BadRequest Failed to deserialize the JsonWebToken object)

javascript - 如何在 JavaScript 中自定义 facebook oauth 对话框?

java - Codename 通过 Linkedin 进行一次登录

java - 如何使用路标发送 oauth_body_hash?

c# - 如何存储 LinkedIn API AccessToken,这样我就不必在每次使用 LinkedIn API 时都重新输入凭据?

iPhone Objective C oauth 2.0 登录 - unsupported_grant_type

android - 将用户名和密码发送到 google oauth 身份验证

java - 使用 JAX-RS Jersey 进行身份验证和授权的简便方法

如果另一个中间件失败,Laravel 调用一个中间件