English 中文(简体)
我的服务器如何验证 Android用户的 Google 账户?
原标题:How can my server authenticate Android users with their Google accounts?

我正在建立一个 Android 应用程序, 作为客户端/ 服务器架构的一部分, 我的服务器将为 Android 客户提供服务 。 服务器不会与任何 Google 服务器通信, 但需要通过 Gmail 账户认证用户 。 也就是说, 服务器需要确定 http 系统 的 http 请求是否来自特定 gmail 账户的用户 。

我当时在研究Android s C2DM 框架, 我当然可以用这个框架来回传递服务相关数据, 但我怎样才能使用Google 账户验证, 在Android 电话和第三方(非Google)服务器之间?

Oath2.0会为此工作吗? 还是Oath2.0只用于电话和Google服务之间的直接认证?

最佳回答

您没有提及您在服务器中要使用的哪个语言代码 。

使用C2DM的简单方式是谷歌App引擎,

如果不是这样(EX:您在自己的服务器上使用php),我会查看AcountManager ,它能为您提供验证符号(应用程序用户必须允许)。

当您在 C2DM 服务器注册新设备时, 您需要该设备来同时传递符号, 这样您就可以通过服务器和 Google 服务器之间的连接来知道该 gmail 账户的用户是否真正拥有该账户 。

:)

问题回答

我认为你现在一定已经得到你询问的答案了。 但我仍然会回答这个问题,以帮助其他有兴趣实现类似目标的用户。

所以要使用 Google 账户访问符号来验证并授权您的应用程序用户使用您自己的服务, 您必须遵循以下步骤 。

  1. Create a project in Google Cloud Console with two components (Create components by clicking on "APIs $ Auth >Credetials" option on left pane ). First component will be your web component (e.g. web-services) and second component is your android application.
  2. Try to get access token by querying account manager in android app by executing GoogleAuthUtil.getToken() method by passing the current context, email id(queried using account manager) and scope as ("audience:server:client_id:").
  3. Where is the "Client ID" parameter of the web component available under the project created on Google Cloud Console.
  4. The method will return you the ID token encoded as JSON web token or JWT.
  5. This ID token everything that a app would require to authenticate user on server.
  6. The ID token consists of following parameters

是:总是账户.google.com

aud:项目网络部分的客户身份

azp: 项目 Android App部分的客户身份

电子邮件: 识别用户请求代号的电子邮件, 以及其他一些字段 。

  1. 将此标记传递给您在 https( 强制) 上的网络组件( 例如网络服务) 。 网络组件和 Android 组件客户端 ID 已经存储 。

  2. 在服务器上解码接收到的 JWT ID 标记后, 请检查该标记的“ 审计” 参数和存储的 Web 组件客户端 ID 是否相等, 从而验证用户 。

  3. 使用 GoogleAuthUtil.getToken () 方法时, 可以通过读取 JWT ID 的电子邮件参数来获取用户身份, 该参数指定了在应用 GoogleAuthUtil. get Token () 方法时在应用程序中访问 Id 符号时提供的电子邮件代号 。

注意 : 只有执行 GoogleAuthUtil.getToken () 才能通过执行 GoogleAuthUtil 获取关于和机器人的ID 符号。 如果在 Google Cloud Console 项目下创建和配置机器人组件时使用的相同证书所标的应用程序是相同的, GetToken () 则只能通过执行 GoogleAuthUtil. get Token () 。

更多信息可在“”上查询,https:// developmenters.google.com/counts/docs/CrossClientAuth” rel=“nofollow”>https://developers.google.com/counts/docs/CrossClientAuth





相关问题
ajax login using httpRequest?

I am trying to develop my login script to give feedback to the user if the login is valid or not. Basically if it isn t correct a div box will show saying its wrong, if its correct it will show its ...

Remotely authenticating client Windows user on demand

Suppose I am writing a server for a particular network protocol. If I know that the client is running on a Windows machine, is it possible for my server to authenticate the Windows user that owns the ...

Role/Permission based forms authorizing/authentication?

While looking into forms authorizing/authentication, I found that it is possible to do role based authorizing by adding an array of roles to a FormsAuthenticationTicket. That way I can write User....

热门标签