使用联合登录或OpenID的Android app + webserver API(WITHOUT GAE)

时间:2012-07-31 13:45:09

标签: android api oauth openid federated-identity

我有一个需要将数据上传到API的Android应用程序(API将在MySQL数据库中保存数据)。我想使用联合登录(Google)或OpenID身份验证程序,以便用户无需为我的应用注册电子邮件+密码,而是可以使用AccountManager中保存的Google(或其他帐户)。

直到今年年初,根据尼克约翰逊的着名配方,解决方案是使用GAE。但由于谷歌开始收取使用GAE的费用,因此这不再是一个可行的解决方案。 请不要推荐使用GAE

有没有人设法解决使用联合登录或OpenID进行身份验证的问题,然后获得第三方(您的)Web服务器API的授权?

注意:OAuth将是一个直接的授权解决方案,除了它依赖于与先前经过身份验证的消费者进行交互(以可信方式),而使用FedLogin对应用程序用户(在移动设备上)进行身份验证时则不然或OpenID。如果我的应用程序(移动设备+网络服务器)对用户进行身份验证(并且我存储登录名+密码 - 这正是我想要避免的内容),则OAuth可以正常工作,但如果Google(或FB)为您执行此操作则不行。

1 个答案:

答案 0 :(得分:2)

这就是OpenID Connect的作用。演示应用here

至于GAE,它仍然有一个免费等级(28个前端实例小时,足以全天候运行),如果你没有多少流量,它应该足够了。无论如何你这样做,你必须在某个地方运行服务器(即使它是你自己的机器),所以没有办法让它完全免费。是的,GAE是一个可行的选择。您可以免费开始并根据需要进行扩展。还有其他原因可以避免GAE,但“我必须(在某些时候)支付(某些东西),因此废弃它”,绝对是错误的心态。