OAuth 流程是:
对于 OAuth 身份验证,应用程序(也称为 OAuth 客户端)将用户重定向到
authorize_url
这会将用户重定向到 oauth 服务器的 Web 服务器,用户在其中授予 网络应用程序访问他/她的帐户
OAuth 服务器将用户重定向到由 应用程序(又名 oauth 客户端)。此时,回调来自 OAuth 服务器,因此没有会话 ID 或 session 哈希。应用程序如何确定调用 post-oauth 回调的用户是什么?
我认为它的工作方式是:
当您将用户重定向到
authorize_url
时,您会附加某些内容 查询字符串的参数?id=xxx
当 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/