【问题标题】:SwiftUI OAuth2.0 redirectURI callback issueSwiftUI OAuth2.0 redirectURI 回调问题
【发布时间】:2021-04-10 09:23:26
【问题描述】:

我正在使用带有代码交换证明密钥 (PKCE) 的 OAuth2.0 身份验证服务来访问 Spotify 令牌。我使用我的 BundleID 和 Redirect URI 在 Spotify 中注册了我的应用程序。

问题是,在我输入用于 Spotify 登录的电子邮件和密码后,我会使用 URL 中的代码重定向到 RedirectUri,但没有任何反应。

这是我的代码:

Code for Auth User

这会正确打开我的 Safari,但随后我被重定向到带有代码的 URI,以访问 URL 中的令牌,但什么也没发生。

After the Spotify signin

我目前正在使用 iOS 14,这就是我设置 URL 类型 URL Type 的方式。 这是我第一次使用 oAuth,我不知道我做错了什么。

所以我的问题是我如何在授权用户后返回我的应用程序?

【问题讨论】:

  • 请将代码直接发布到您的问题中,而不是图片链接。这将帮助其他用户更好地理解和回答您的问题。 meta.stackoverflow.com/a/285557

标签: ios oauth-2.0 swiftui spotify url-scheme


【解决方案1】:

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

【讨论】:

  • 感谢您的回答。这个网站不是真的。我如何返回 url 并关闭 safari 视图? Oauth 库不应该关闭视图并返回代码吗?
  • 您需要一个后端小型服务器来使用code 为您获取access token,您可以在您的应用程序中执行此操作,但这会危及您的所有凭据(其中最重要的是,你的client secret) 被曝光。你可以自己深入研究这个问题,为什么你需要一个后端,你不应该在应用程序中这样做,但 client secret 这个词本身对你来说就足够了。没有人应该知道你的秘密!
  • 为了更清楚,不,它不应该关闭 safari 并返回代码。调用 url 回调端点后,您需要在服务器上获取访问令牌,然后让用户关闭 safari 或从您的 Web API 自己完成(这有点复杂)
猜你喜欢
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多