Google 登录 iOS 和 Web
Google Sign In iOS and Web
我正在构建一个带有网络和 iOS 应用程序的系统。 Web 部件需要可在移动部件上使用的身份验证,反之亦然。
我想添加对 google 登录 Web 和移动部分的支持。为了测试,我使用了
中的代码
https://developers.google.com/identity/sign-in/ios/start-integrating
对于 iOS 和
https://developers.google.com/identity/sign-in/web/
对于 Web 部件。
应用程序和网络(电子邮件、个人资料)的范围相同
预期流量
- 用户使用 google 登录并授予移动(或网络)访问权限
- 用户访问网站(或应用程序)
- 用户使用 google
登录
- 无需再次授权
我得到了什么
- 用户使用 google 登录并授予移动设备访问权限
- 用户访问网站
- 用户使用 google
登录
- 再次请求相同的权限
如何避免再次请求许可?来自文档 (https://developers.google.com/identity/sign-in/web/cross-platform-sign-in)
似乎有可能获得预期的流量,但实际上我无法获得它。 iOS 和 Web 在同一个 google 开发者项目中。
我按照以下指南按预期完成了这项工作:https://developers.google.com/identity/protocols/CrossClientAuth
https://developers.google.com/identity/sign-in/ios/offline-access
您需要做的是:
先加
[GIDSignIn sharedInstance].serverClientID = @"SERVER_CLIENT_ID";
在您的 iOS appDelegate 中。当用户通过应用程序进行身份验证时,您现在可以通过 GIDGoogleUser
对象的 serverAuthCode
属性检索对您的 server_client_id 有效的令牌。
将令牌发送到服务器并在令牌端点上对其进行验证 (/oauth2/v3/token) redirect_uri
必须为空而 grant_type
必须为 authorization_code
否则您将拥有400 响应。
您的服务器现已通过身份验证,用户登录网站时不会再次询问权限。
我正在构建一个带有网络和 iOS 应用程序的系统。 Web 部件需要可在移动部件上使用的身份验证,反之亦然。 我想添加对 google 登录 Web 和移动部分的支持。为了测试,我使用了
中的代码https://developers.google.com/identity/sign-in/ios/start-integrating
对于 iOS 和
https://developers.google.com/identity/sign-in/web/
对于 Web 部件。 应用程序和网络(电子邮件、个人资料)的范围相同
预期流量
- 用户使用 google 登录并授予移动(或网络)访问权限
- 用户访问网站(或应用程序)
- 用户使用 google 登录
- 无需再次授权
我得到了什么
- 用户使用 google 登录并授予移动设备访问权限
- 用户访问网站
- 用户使用 google 登录
- 再次请求相同的权限
如何避免再次请求许可?来自文档 (https://developers.google.com/identity/sign-in/web/cross-platform-sign-in) 似乎有可能获得预期的流量,但实际上我无法获得它。 iOS 和 Web 在同一个 google 开发者项目中。
我按照以下指南按预期完成了这项工作:https://developers.google.com/identity/protocols/CrossClientAuth https://developers.google.com/identity/sign-in/ios/offline-access
您需要做的是:
先加
[GIDSignIn sharedInstance].serverClientID = @"SERVER_CLIENT_ID";
在您的 iOS appDelegate 中。当用户通过应用程序进行身份验证时,您现在可以通过 GIDGoogleUser
对象的 serverAuthCode
属性检索对您的 server_client_id 有效的令牌。
将令牌发送到服务器并在令牌端点上对其进行验证 (/oauth2/v3/token) redirect_uri
必须为空而 grant_type
必须为 authorization_code
否则您将拥有400 响应。
您的服务器现已通过身份验证,用户登录网站时不会再次询问权限。