gpt4 book ai didi

ios - 使用服务器端身份验证为 oauth.io 调用提供状态(使用 iOS SDK)

转载 作者:可可西里 更新时间:2023-11-01 04:44:03 27 4
gpt4 key购买 nike

我正在尝试通过 iOS 应用程序将 oauth.io 与 Twitter 或 Facebook 结合使用,通过服务器端身份验证。我可以使用 [_oauthio showWithProvider:providerName]; 连接到该服务,并且连接无误返回。然而,我得到的是

oauthtest://localhost#oauthio={"status":"error","message":"你必须提供服务器端认证时的状态","provider":"twitter"}

换句话说,它需要一个state参数。但是没有明显的方法可以将它添加到任何地方的调用中吗?有谁知道如何添加这个?

更新:我深入研究了 oath.io SDK,并将 &state=abc 拼接到 showProviderWith: 方法内的 URL 构造中,但这仍然给出了同样的结果:连接返回成功,但是content提示错误如上。

使用不同的提供商 Facebook,我得到完全相同的结果(当然,使用 "provider":"Facebook")

最佳答案

好的,通过查看 oauth.io Android SDK 找到了答案:有一个添加状态参数的工具,但它是一个URL 编码的 JSON 对象 .所以在 iOS 查询字符串中传递它的正确方法是有一个查询参数 opts它的值(value)是{"state":"STATE_HASH_HERE"} .

带有状态值的完整查询字符串如下所示:

https://oauth.io/auth/twitter?k=<PUBLIC_KEY>
&opts=%7B%22state%22%3A%22<STATE_VALUE>%22%7D
&redirect_uri=OAuthTest://localhost

(其中 %7B = {, %22 = ", %3A = :, and %7D = } 用于 JSON 对象的百分比编码。)

关键元素是包裹在 opt 中范围。这些实际上都没有包含在 oauth.io iOS SDK 中。

更新:我的 pull-request 现已合并,并且有一个新方法可用于传递选项:[_oauthio showWithProvider:@"twitter" options:@{@"state": <STATE_VALUE>}]; .`

关于ios - 使用服务器端身份验证为 oauth.io 调用提供状态(使用 iOS SDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21833734/

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