Android登录与谷歌离线访问

标签 android google-oauth google-authentication google-signin

我正在尝试使用这些指南登录谷歌: http://www.androidhive.info/2014/02/android-login-with-google-plus-account-1/ https://developers.google.com/+/mobile/android/getting-started

登录有效,我能够正确登录。现在我需要的下一步是将访问和刷新 token 发送到我的服务器,以便服务器可以访问用户的谷歌帐户详细信息(图片/姓名等)并将其作为新用户保存在数据库中。

我尝试使用此处的代码获取访问 token : https://github.com/googleplus/gplus-photohunt-client-android/blob/master/src/com/google/plus/samples/photohunt/auth/AuthUtil.java

当我在此处插入访问 token 时: https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=

我看到 access_type 是“online”。我相信为了接收刷新 token 并使其正常工作,我需要请求用户进行离线访问。我不确定如何从上面指南中提供的代码中做到这一点。

我怀疑它一定在这里:

// Initializing google plus api client
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this).addApi(Plus.API, null)
                .addScope(Plus.SCOPE_PLUS_LOGIN).build();

但是我这里没办法设置访问类型为离线。 在这一点上,整个过程听起来很复杂,我希望以前做过这件事的人在某个地方写了一个指南/教程,可以更容易地理解如何让用户登录到你的 android 设备并将该用户保存在你的数据库中在您的服务器上,以便它们都同步。任何帮助和指导将不胜感激。

编辑 1: 在更多阅读谷歌文档时,可以按照我上面描述的那样让流程工作: https://developers.google.com/accounts/docs/CrossClientAuth 所有 Android 应用程序如何处理多个平台上的用户注册?喜欢安卓和网站?如果我正在尝试的方法是唯一的方法,我会期待更多的资源。或者,如果有另一种替代解决方案,我很想知道。 谢谢。

最佳答案

确实正确的方法是使用 CrossClientAuth 方向。

用户第一次打开您的应用程序时,您可以请求一个 id_token w/audience 等于您的网站 client_id。如果您已经知道用户的电子邮件地址,则不需要额外的用户同意,因为 id_token 只是一个标识 token 。然后,您可以验证该帐户是否存在于您的家庭服务器中,而无需额外的人工交互。如果该帐户不存在,您可以获得授权码并使用 CrossClientAuth 技术将其发送到您的主服务器。在您的主服务器获得授权后,您的 Android 应用程序应该能够通过简单地请求此类 token 来获取 access_tokens,而无需进一步批准。

关于Android登录与谷歌离线访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351875/

相关文章:

android - 如何找出我的 Android 应用程序的内存占用?

android - 使用 RecyclerView.Adapter 在 onBindViewHolder() 中设置 onItemClickListener

c# - 使用 C# 在 ASP.Net 中使用 Google Drive API 将文件上传到 Google Drive

asp.net - YouTube使用Google API for ASP.net通过网站上传并显示进度

java - 带有谷歌按钮的亚马逊认知崩溃程序

java - 我的导航栏上的第一个图标是蓝色的,并且比其他图标大,我该如何更改它?

android - 如何克服android中tabwidget的这种情况

spring-security - 用于 Google 登录的 Spring Security OAuth2 Java 配置

oauth-2.0 - 如何使用 Google Auth JWT 授权登录用户? (图片)

使用React Frontend的Django Google登录