1

我想为我们的 Android 应用程序开发一个新选项,允许新用户使用他们的Google帐户登录。我们需要检索基本的用户信息(名字、姓氏、出生日期、电子邮件、国家等)并将它们存储在服务器上。它应该仅在用户第一次登录应用程序时发生,因此下次按钮所做的所有操作都是简单的身份验证以访问成员区域。

oauth2目前,我们的应用程序使用和提示权限,并且可以通过oauth2 apiAccountManager检索用户信息。我想在我们的服务器上做同样的事情。

所以在这里总结一下是我正在考虑的流程:

  1. 用户选择使用Google登录
  2. 如果他尚未授权该应用程序,请请求访问他的信息的权限;检索并将它们存储在服务器上并登录。如果他已经授权该应用程序,只需登录即可。

不过,我们仍然需要在他的 Android 设备上保存用户信息的本地副本,以便他可以查看自己的个人资料。

注意:我考虑在我们的服务器上进行数据导入过程的原因是为了加快应用程序的速度并节省一些带宽。但我也觉得用户可能想在保存到服务器之前修改他的数据。

我真的很困惑,oauth2 文档并没有太大帮助。

4

2 回答 2

1

我不明白这个问题。对不起。

只需从 OAuth api 检索有关客户的信息,通过 HTTP/HTTPS 发布请求将信息发送到服务器,并将其保存在那里。然后将相同的信息保存在手机中的 SQLite 数据库中,并在第一次启动应用程序后检查 SQLite 中的用户表是否存在客户。

这是一个很棒的例子:http ://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/

于 2012-08-23T19:27:30.807 回答
0

为此,您需要遵循Google提供的跨平台单点登录跨客户端身份验证文档。本质上,您的流程应该是:

  1. 检查用户是否已通过身份验证(可能最好作为远程系统的 POST),如果是,请继续您的主要活动。如果没有,请显示登录按钮。
  2. 用户单击登录后,连接 GoogleApiClient,检索当前人员,将他们的信息保存在设备上(如果需要)。
  3. 通过GoogleAuthUtil.getToken为用户请求一个身份验证令牌。
  4. 将令牌发送到您的 Web 服务器(必须是 https)。在您的 Web 服务器上,从令牌中检索用户信息,并将其保存到数据库中。

另外,我建议您为您的请求使用持久性 cookie 存储(我更喜欢 loop4j 的Android Async-HttpClient)。这将允许您轻松保存会话,因此您不必过于频繁地进行身份验证。

于 2014-07-06T17:17:00.183 回答