首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌应用程序引擎的db.UserProperty与rpxnow

谷歌应用程序引擎的db.UserProperty与rpxnow
EN

Stack Overflow用户
提问于 2010-09-13 18:55:50
回答 2查看 387关注 0票数 0

我们有一个Django项目,它在Google App Engine上运行,并在几个型号中使用了db.UserProperty。我们没有自己的用户模型。

我的老板希望使用RPXNow (Janrain)进行身份验证,但是在我集成它之后,users.get_current_user()方法返回了None。这是有道理的,因为不是谷歌验证了我的身份。但是我应该为db.UserProperty属性使用什么呢?有没有可能在使用rpxnow的同时仍然拥有Google的User对象?

在此之后,我尝试在我的应用程序中使用OpenID身份验证(使用联合登录),效果非常好:我仍然拥有users.get_current_user()对象。据我所知,rpxnow也使用openID,这意味着(对我而言)应该可以使用rpxnow获取用户对象。但是怎么做呢?

干杯,psmith

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-14 17:31:46

如果您使用的是内置身份验证方法之一,则只能获取User对象。用户对象为用户API提供了一个接口,该接口由App Engine基础设施处理。如果您使用自己的身份验证库,则无论它使用什么协议,都必须以不同的方式存储用户信息。

票数 1
EN

Stack Overflow用户

发布于 2010-09-15 04:32:26

我还没有尝试过,但是App Engine现在支持联合登录(OpenID)作为一种身份验证机制。您可以从控制面板启用它。

点击此处阅读更多信息:http://code.google.com/googleapps/domain/sso/openid_reference_implementation.html

尽管如此,集成了RPXNow的-once很容易使用Polymodel将其链接到您的应用程序,如下所示:

代码语言:javascript
复制
class InternalUser(polymodel.PolyModel):
  name = db.StringProperty(required=True)
  groups = db.ListProperty(db.Key)

class GoogleUser(InternalUser):
  google_user = db.UserProperty(required=True)

class OpenIDUser(InternalUser):
  unique_identifier = db.StringProperty(required=True)

然后,您可以使用db.ReferenceProperty(required=True, reference_class=InternalUser)而不是db.UserProperty

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3699751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档