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