python - 在 AppEngine 上支持多登录的最佳方式

标签 python google-app-engine

我正在为客户重构一个应支持 OpenID、Facebook Connect 和自定义身份验证(电子邮件+密码)的应用程序。 假设我有:

class MyUser(db.Model):
    pass
class Item(db.Model):
    owner = db.ReferenceProperty(MyUser)

我正在考虑以这种方式实现不同的身份验证系统:

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()

有更好的解决方案吗?已有答案here但我不明白这是否适合我。 我已经开发了一个使用 Users API 的应用程序和另一个使用 Facebook Connect 的应用程序,所以我知道如何处理这两者,问题是将它们连接在一起。不幸的是,切换到另一个框架不是一个选择。

最佳答案

我会仔细看看 tipfy及其 Authentication extension .*

他们实现了 Universal User model可以与 App Engine 的默认用户 API、自己的身份验证或第三方身份验证方法(OpenId、OAuth 等)一起使用。

Here是文档,查找 MultiAuthMixin 部分。

*优秀的程序员写出优秀的代码;伟大的程序员窃取伟大的代码

关于python - 在 AppEngine 上支持多登录的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4200531/

相关文章:

python - 如何替换 Google 数据存储查询结果对象中的字符?

google-app-engine - 从应用引擎中删除实体

python - 正确使用 GAE ndb.CompulatedProperty

java - 找不到类 'EndpointsAsyncTask$1' ,从方法 EndpointsAsyncTask.xxx 引用 - 匿名函数

python - 测试一个将 chalice 与 moto 一起使用的 lambda?

python - 使用 xlrd 读取日期并使用 xlsxwriter 在 Python 中写入日期

python - 非常大数据集的余弦相似度

python - Python 格式字符串中的宽度变量

python读取带有行号的多列tsv文件

java - 如何从 URL 检索图像并将其存储为 Java 中的 Blob(谷歌应用引擎)