目前,当为Google身份验证创建iOS应用时,它仅生成客户端ID。
在iOS端,我使用两个应用程序(IOS和WEb)的客户端ID来验证用户身份并生成刷新令牌。
根据Google的文档,生成的访问令牌是短暂的。因此,每当我们需要重新生成用户的访问令牌时,在服务器端,我们使用Web-app的client-id和client-secret。
但是,每当我尝试使用刷新令牌,客户端ID(网络应用程序)和客户端密钥(网络应用程序)生成新的访问令牌时,它就会提供未经授权的客户端"错误,这意味着刷新令牌与Client-ID和Client-Secret不同步。
请告诉我客户端ID和客户端密码的组合,我应该在服务器端使用它来重新生成用户的access_token。此外,任何人都可以指导我生成iOS应用程序和Web应用程序的步骤,可以在验证用户身份时生成刷新令牌。
答案 0 :(得分:1)
刷新令牌仅限于特定的客户端/应用。您的iOS和Web应用程序具有不同的客户端ID,因此一方的刷新令牌不能被另一方使用。
在iOS客户端,只需要客户端ID和刷新令牌(最初提供给同一客户端)来获取新的访问令牌(对于同一个iOS客户端)。 iOS客户端没有客户端密钥。如果您使用Google登录iOS SDK,则会自动为您处理。
如果您希望客户端将登录用户传送到后端服务器,请参阅https://developers.google.com/identity/sign-in/ios/backend-auth。
如果您的后端服务器本身也需要访问令牌,请设置服务器端访问权限,如:https://developers.google.com/identity/sign-in/ios/offline-access