从Android客户端到Google App Engine Webapp2的身份验证

时间:2015-03-13 18:49:33

标签: android google-app-engine google-cloud-endpoints webapp2

我有一个基于Web的应用程序(Webapp2)和Google App Engine后端。使用Webapp2框架使用自定义用户标识/密码完成身份验证。

现在,我正在使用Android客户端将此Web应用程序扩展到移动设备。如何从Android客户端到Google App Engine后端进行身份验证? Google Cloud Endpoints是否支持自定义用户ID /密码身份验证?

2 个答案:

答案 0 :(得分:0)

这取决于身份验证的用途。您是否需要用户授权访问他们的数据,或者您只是保护提供给您的应用程序的REST服务?

Cloud Endpoints使用可以使用Google帐户进行身份验证的OAuth 2.0,或者您也可以针对"服务帐户"进行身份验证。对于您的应用,如果不需要用户同意。一个很好的信息来源是文档[1]。当然,没有什么能阻止您实施自己的身份验证方案或使用其他库,就像您在其他平台上托管移动后端一样。

另一个针对移动身份验证的优秀文档是“在移动应用中验证用户”。在[2]。

[1] https://cloud.google.com/appengine/docs/java/endpoints
[2] https://developers.google.com/accounts/docs/MobileApps

答案 1 :(得分:0)

我认为你可以从https://github.com/coto/gae-boilerplate

获得灵感

这是一个实际总结的巨大话题:)但我会尽我所能。

首先,您应该阅读什么是OAUTH客户端流和服务器流。(您可以决定使用哪一个。)然后我将使用Facebook作为示例。

假设您在Android上使用Facebook SDK来验证您的用户,通常如果他们已经在他们的Facebook应用程序中进行了身份验证,您将获得UserID和AccessToken以及其他一些信息。这是facebook告诉你:“是的,你可以相信这个人。这是他的身份和信息。”

然后,您可以利用该信息存储在您自己的用户数据库(或GAE术语中的数据存储区)中。因此,稍后您可以告诉谁,当他们登录时,他们的特定ID与您的用户相关联。 (一个用户可以拥有不同的提供者ID。)请记住这一点。

现在回过头来看看gae-boilerplate实现:https://github.com/coto/gae-boilerplate/blob/master/bp_includes/handlers.py

查看三个处理程序类:LoginHandler,SocialLoginHandler,CallbackSocialLoginHandler