几个月前我从Google App Engine迁移出来.但我仍然依赖它进行身份验证,因为我的用户是通过GAE上的user_id属性来标识的.
为此,我(现在的外部)应用程序使用加密,签名和带时间戳的登录请求将用户重定向到Google App Engine应用程序.然后,GAE应用程序使用GAE的"用户"服务执行登录.成功登录GAE后,用户再次使用加密,签名和带时间戳的响应重定向到我的外部应用程序.可以在这里和这里找到基本的实现.正如您所看到的,这是非常基本的,并且依赖于导致性能不佳的严重加密.
我的外部应用程序(在本例中为Django应用程序)将user_id存储在用户表的密码字段中.除了user_id之外,我只从GAE获得电子邮件地址,以便在Django中存储用户名和电子邮件.
现在我想删除对GAE服务的依赖.想到的第一种方法可能是向每个用户发送一封电子邮件,要求他设置一个新密码,然后使用Django执行我自己的身份验证.
我更喜欢依赖Google的OpenID服务的解决方案,以便用户实际上没有任何区别.这也是首选,因为无论如何我都需要将用户发送给Google以获取Google Calendar API的AuthSub令牌.
问题是我无法在不使用GAE的情况下找到获取给定Google帐户的GAE user_id属性的方法.OpenID和所有其他身份验证协议使用不同的标识符.
所以现在的问题是:谷歌是否提供了我可以用于此目的的任何API,我还没有看到?有关如何迁移用户帐户的其他可能的解决方案或想法吗?
提前致谢!