1

目前,当为 Google 身份验证创建 iOS 应用程序时,它只会生成一个 Client-ID。

在 iOS 端,我使用两个应用程序(IOS 和 WEB)的客户端 ID 来验证用户并生成刷新令牌。

根据谷歌的文档,生成的访问令牌是短暂的。因此,每当我们需要重新生成用户的访问令牌时,在服务器端我们使用 Web-app 的 client-id 和 client-secret。

但是,每当我尝试使用刷新令牌、client-id(web 应用程序)和 client-secret(web-app)生成新的访问令牌时,它都会给出“未经授权的客户端”错误,这意味着刷新令牌不在与 Client-ID 和 Client-Secret 同步。

请让我知道我应该在服务器端使用的 client-id 和 client-secret 的组合来重新生成用户的 access_token。此外,任何人都可以指导我生成 iOS 应用程序和 Web 应用程序的步骤,这些应用程序可用于在验证用户时生成刷新令牌。

4

1 回答 1

1

刷新令牌仅限于特定的客户端/应用程序。您的 iOS 和 Web 应用程序具有不同的客户端 ID,因此来自一个的刷新令牌不能被另一个使用。

在 iOS 客户端,只需要客户端 ID 和刷新令牌(最初给同一个客户端)来获取新的访问令牌(对于同一个 iOS 客户端)。iOS 客户端没有客户端密码。如果您使用 Google Sign-In iOS SDK,系统会自动为您处理。

如果您希望客户端将登录用户传送到后端服务器,请参阅https://developers.google.com/identity/sign-in/ios/backend-auth

如果您的后端服务器本身也需要访问令牌,请设置服务器端访问,如下所示:https ://developers.google.com/identity/sign-in/ios/offline-access

于 2016-06-14T01:12:48.537 回答