Android 对我自己的服务器的 Google 授权

Android authorization with Google for my own server

所以我将从头开始。我想创建一个 Android 应用程序和一个服务器(用 java 编写)。服务器将写入Java。我想要做的是能够使用 Google 帐户从 Android 应用程序登录到我的服务器。设备登录后,会有一些信息与 HTTP Requests 共享。我想使用 REST。

我应该如何着手实现我的目标?我想我应该使用 Google API 和 Google App Engine。我应该怎么做才能在服务器中实现登录和部分。这是我第一次编写服务器和登录应用程序,所以任何建议将不胜感激。该应用程序用于教育目的。提前致谢!

使用 Google Play 服务(您不需要 App Engine)。

下面是带有代码示例的完整过程:Authorizing with Google for REST APIs

您可以查看另一个选项:Google+ Sign-in for Android

在服务器端,获得授权令牌后,您可以使用用户名和令牌访问 Google REST API,Google 会告诉您访问是否有效授权。

我明白你想做什么。您的用户已经在 Google 上拥有用户名和凭据,为什么不直接获取用户名并让 Google 完成所有身份验证?

但是,您可能需要重新考虑这种方法。

问题是您会要求您的用户登录 Google,而 Google 会询问用户(通过 Android API 代码中的逻辑)如果您的应用程序可以访问他们在 Google 中的信息。您的用户可能不愿授予对您的应用程序的这种访问权限,这会阻碍您让人们使用您的应用程序的努力。

现在,如果您的应用实际上 使用 Google REST API,那么这会更有意义,因为您的应用请求的身份验证令牌将提供对 Google API.

的访问

但如果您所做的只是进行身份验证,您的用户可能会犹豫是否要为您的应用授权他们认为您不需要的某些 Google 操作。

要感受 OAuth 2.0 消息流,您可以使用:OAuth 2.0 Playground

我真的建议您提供 Google App Engine a try, specially combining it with Cloud endpoints,它旨在将您的服务器连接到客户端,例如 Android 应用程序。使用端点,您将获得云基础架构 + REST 服务 + 本机库(用于 Android、JS 和 iOS),并且与身份验证相关的所有内容都已经整理出来(通过 OAuth)。

App Engine 也可以使用 Java 进行开发,它已经与 Eclipse(通过 Google 插件)和 Android Studio(作为后端模块)等流行的 IDE 集成,因此您可能拥有您在 App Engine 服务器上工作所需的一切。