我想在GAE上开发一个商业应用程序。业务所有者不知何故不喜欢或误解OpenID的想法,坚持实施本地用户管理:使用存储在应用程序数据存储中的登录名和密码进行注册。
我想通过使用“本地”OpenID提供程序来实现他想要的东西。这似乎是最直接的方法。有没有办法“插入”现有的OpenID提供程序库(+登录对话框+可能是注册工作流程)并在同一个应用程序中使用它?例如,Janrain是否需要进行大量的修修补补?
如果不是这样,我可以自己创建User实例并使用本地商店的用户名+密码吗?那么如何处理会话管理?
对不起,我对此事情不是很有经验,因为主要业务主题让用户管理分心,我真的很烦恼:(
答案 0 :(得分: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提供的联合登录的一部分。