2

我想在 GAE 上开发一个商业应用程序。经营者不知何故不喜欢或误解 OpenID 的理念,坚持实施本地用户管理:使用存储在应用程序数据存储中的登录名和密码进行注册。

我想通过使用“本地”OpenID 提供程序来实现他想要的。这似乎是最直接的方法。有没有办法“插入”现有的 OpenID 提供程序库(+登录对话框 +也许是注册工作流程)并在同一个应用程序中使用它?例如,Janrain 是否需要大量修补才能做到这一点?

如果不是这样,我可以自己创建用户实例并使用本地商店的用户名+密码吗?那么如何处理会话管理呢?

抱歉,我在这件事上不是很有经验,从主要业务主题上被用户管理分心真的让我很恼火:(

4

1 回答 1

3

我认为实施“虚拟”OpenID 提供程序并不是解决您的问题的最佳方法。您只需将自己的 cookie/会话存储在当前登录用户的位置上。在 Google App Engine 上手动做到这一点并不容易,但幸运的是,有很多框架可以解决这个问题(gae-sessions就是其中之一)。

我建议您查看Flask-Login,它可以与您的 Google App Engine 集成。Flask-Login 为您提供了一个登录管理器,它通过安全会话处理所有后台工作,由您决定谁是登录用户。她是使用自定义登录名(用户名/密码)还是 OpenID 登录名登录并不重要,因为在这两种情况下,您都将拥有一个User模型来存储特定用户的额外信息。然后,您只需将该user_db实体设置为登录用户。

您可以查看gae-init(免责声明:我是创建者)作为示例,了解如何使用 Flask-Login 以及其他内容,包括 Google、Facebook 和 Twitter 登录。请注意,Facebook 和 Twitter 不属于 Google 提供的联合登录。

于 2012-06-23T16:44:15.937 回答