如何在android应用程序上使用Google帐户注册用户

如何在android应用程序上使用Google帐户注册用户,android,mysql,google-play-services,google-oauth,Android,Mysql,Google Play Services,Google Oauth,所以,我正在创建一个安卓应用程序,除了我的标准注册方法外,我还希望允许用户使用他们的谷歌帐户进行注册。我看到了很多关于“使用Google+登录”以及OAuth实现的信息。然而,我还没有看到任何真正涉及到验证用户并允许他们使用Google帐户注册应用程序,然后使用同一帐户登录,引用我数据库中用户帐户记录的本地副本的内容。基本上,我想做的是: 允许用户使用他们的Google帐户注册一个帐户,我认为这将获取基本信息,如姓名和电子邮件地址,我可以使用这些信息创建本地数据库记录 当用户使用他们的Goog

所以,我正在创建一个安卓应用程序,除了我的标准注册方法外,我还希望允许用户使用他们的谷歌帐户进行注册。我看到了很多关于“使用Google+登录”以及OAuth实现的信息。然而,我还没有看到任何真正涉及到验证用户并允许他们使用Google帐户注册应用程序,然后使用同一帐户登录,引用我数据库中用户帐户记录的本地副本的内容。基本上,我想做的是:

  • 允许用户使用他们的Google帐户注册一个帐户,我认为这将获取基本信息,如姓名和电子邮件地址,我可以使用这些信息创建本地数据库记录
  • 当用户使用他们的Google帐户注册时,将该注册或令牌id绑定到我的数据库中的实际记录。允许我用Google帐户识别该用户/记录的东西
  • 当该用户决定使用Google登录时,搜索现有关联(访问/令牌id),并使用该信息(假设该信息仍然有效)和 同时提取他们的本地帐户信息(例如,电影评论应用程序提交的评论),这些信息与谷歌帐户相关

我希望我已经解释了我想要实现的目标,但如果它听起来仍然有点模糊,请让我知道,我会尝试解释更多。非常感谢您的帮助。我显然不希望有人为我编写代码,只是为了给我指出正确的方向,或者只是告诉我我正在尝试的是一个可怕的想法。不管怎样,先谢谢你

您应该先阅读一些关于如何实现注册的教程

对于数据库的处理,您可能应该使用内容提供商:


剩下的只是编码和一些艰苦的工作。希望我解决了您的问题。

您可以获取计算机上的Google帐户列表并将其用作密钥(请参阅AccountManager),但如何防止有人使用其他帐户伪造与您服务器的连接如果您希望1/避免安全漏洞,2/避免处理用户密码,则“身份验证”非常复杂。
因此OAuth是一种方法:手机将生成一个访问令牌(在提示用户允许您的应用程序访问他的帐户后),该令牌可以发送到您的服务器(https),然后您的服务器可以对照google服务器检查令牌是否有效,并为用户返回一个唯一的id。

请参见

谢谢您的回答。所以,让我们假设我使用GoogleAuthUtil以OAuth的方式实现这个解决方案。据我所知,这并不涉及质询提示,因为将为web和android创建客户端Id,而Google只会给我一个令牌。我的问题是,我如何使用它进行注册?我知道有一个包含基本信息的JSON负载,但我如何将此令牌和信息绑定到数据库中的记录,以便当用户决定登录Google时,我可以检查他们是否存在关联并加载他们的本地信息。基本上,当一个人注册并使用Google登录时,我想在我的数据库中有一个关联的ID,以便在调用RESTful web服务时使用。您的数据库在哪里?在服务器上?在终端中?服务器上的MySQL db。因此,每次应用程序连接到您的服务器时,您都会得到一个令牌,并且您必须连接到google API(例如“plus API”和“get'me”),以确保它有效并将其转换为ID(用户电子邮件应该是好的)。如果你不想为应用程序的每个连接连接到谷歌,你还可以生成会话ID并将其返回到android应用程序进行进一步验证。