oauth-2.0 SwiftUI OAuth2.0重定向URI回调问题

uqcuzwp8  于 2022-10-31  发布在  Swift
关注(0)|答案(2)|浏览(391)

我正在使用OAuth2.0认证服务和代码交换验证密钥(PKCE)来访问Spotify令牌。我在Spotify中使用我的BundleID和重定向URI注册了我的应用程序。
问题是,在我输入Spotify登录的电子邮件和密码后,我会被重定向到URL中的代码RedirectUri,但什么也没发生。
这里我的代码:
Code for Auth User
这正确地打开了我的Safari,但随后我被重定向到带有代码的URI,以访问URL中的令牌,但什么也没发生。
After the Spotify signin
我目前在iOS 14上工作,这是我如何设置我的URL类型URL Type。这是我第一次使用oAuth,我不知道我做错了什么。
因此,我的问题是如何在授权用户后返回我的应用程序?

bzzcjhmw

bzzcjhmw1#

该站点是真实的的站点吗?当用户被重定向到您的URL回调端点时,您应该从URL查询参数中获取code,并在您的服务器中将其与Access Token交换。然后,您应该将该访问令牌存储在某个地方,并将"client-id": yourClientId"Authorization": userAccessToken作为头文件传递给您每次向Spotify服务器发出的请求。

ujv3wf0j

ujv3wf0j2#

为了让OAuth工作流触发应用程序,callback URL必须是您在应用程序中“信息”选项卡上“URL类型”下配置的URL。
它看起来像这样:

然后,使用此URL方案为您正在使用OAuth的网站配置回调URL。此URL可能类似于:

myapp://oauth-callback/spotify

一旦这样配置;这是您在调用authorize(...)方法时将指定为withCallbackURL参数值的URL。
根据用户采取的操作,OAuth机制将触发此回调URL,如果您在设备上,将提示您“打开”应用程序;点击“打开”后,您将被带到应用程序。应用程序将接收包含授权状态和所有所需信息的深层链接,作为查询字符串参数,(按照上面的示例,显示错误情况):

myapp://oauth-callback/spotify?error:access_denied&state=...

用于为您的应用定义URL Scheme的开发者文档。

相关问题