Google App Engine 作为移动应用的认证服务器
我正在尝试使用谷歌应用引擎(Google App Engine)作为一个身份验证服务器,来支持一个在安卓手机上运行的应用程序。我想把用户名和密码存储在谷歌应用引擎上,并希望能够通过这个平台来存储和验证用户的登录信息。这样做可行吗?我查过OAuth和JSON,但感觉我的设置可能不太合适。
另外,如果我走错了方向,请告诉我该怎么做才对。
2 个回答
0
如果你说的“存储凭证”是指存储用户名和密码,那我想你可能走错了方向。无论你是在谈论OAuth还是OpenID,这些技术的核心思想是你永远不应该看到或访问委托认证机制的密码(可能连用户名也不应该看到)。相反,你会收到一个认证或授权的令牌,用来完成你的工作(在OpenID的情况下,还会有一些关于这个人的基本信息,比如名字、姓氏和电子邮件地址)。
顺便问一下,你有没有考虑过使用第三方服务,比如Janrain?
1
如果你想在你的GAE实例中实现更像API的功能,我建议你多了解一下OAuth。不过,如果你只是想验证这一个移动应用的用户身份,那就没必要走那么远了。
幸运的是,你可以通过SSL来访问你的GAE实例,这样就可以处理所有的握手和加密工作。接下来,我建议你使用基本的HTTP认证,或者直接在请求中发送用户ID和加密后的密码作为参数。
在iPhone上有一个叫做KeyChain的功能用来存储密码,安卓上可能也有类似的功能吧?无论如何,确保在设备和GAE数据库中存储的密码都是加密的。在验证用户身份时发送加密后的密码。你永远不应该知道用户的明文密码。这样可以提供一定的隐私保护,我觉得这已经足够了(特别是在通过SSL发送的时候)。
最后,你只需要返回账户的验证结果即可。