我正在为客户端重构一个应该支持OpenID,Facebook Connect和自定义身份验证(电子邮件+密码)的应用程序.假设我有:
class MyUser(db.Model):
pass
class Item(db.Model):
owner = db.ReferenceProperty(MyUser)
Run Code Online (Sandbox Code Playgroud)
我想用这种方式实现不同的身份验证系统:
class OpenIDLogin(db.Model): # key_name is User.federated_identity()? User.user_id()?
user = db.ReferenceProperty(MyUser)
class FacebookLogin(db.Model): # key_name is Facebook uid
user = db.ReferenceProperty(MyUser)
class CustomLogin(db.Model): # key_name is the user email
user = db.ReferenceProperty(MyUser)
password = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)
有更好的解决方案吗?这里已有答案,但我无法理解这是否适合我.我已经使用Users API开发了一个应用程序,而另一个已经使用Facebook Connect开发了应用程序,所以我知道如何处理这两个问题,问题是将它们连接在一起.不幸的是,切换到另一个框架不是一个选择.