【问题标题】:(O)Auth with ExtJS(使用 ExtJS 的 OAuth
【发布时间】:2010-04-20 18:34:54
【问题描述】:

今天我试图让 django-piston 和 ExtJS 工作。我使用了 ExtJS 的 restful 示例和活塞示例来创建一个小的 restful webapp。除身份验证外,一切正常。

使用 ExtJS 获得 Basic/Digest/OAuth 身份验证的最佳方式是什么? Atm 我不确定在哪里设置用户名/密码。

谢谢

【问题讨论】:

    标签: extjs oauth django-piston


    【解决方案1】:

    如果你想在 ExtJS 中使用活塞,我建议编写一个匿名处理程序来检查用户是否通过标准身份验证登录。

    试试这个:

    class AnonymousUserProfileHandler(BaseHandler):
        fields = ('title', 'url', 'affiliation')
        model = UserProfile
    
        def read(self, request, nickname):
            profile = UserProfile.objects.get(nickname=nickname)
    
            if request.user == profile.user:
                return profile
    
    class UserProfileHandler(BaseHandler):
        anonymous = AnonymousUserProfileHandler
        allowed_methods = ('GET')
        fields = ('title', 'url', 'affiliation')
        model = UserProfile
    
        def read(self, request, nickname):
            profile = UserProfile.objects.get(nickname=nickname)
              return profile
    

    在此示例中,当调用 UserProfileHandler 时,未经任何授权,它会委托给匿名处理程序。匿名处理程序检查用户是否通过通常的 request.user 模式登录。如果存在有效用户,则返回其配置文件对象。然后,显然,您会将调用它的视图标记为需要登录。

    重点是:当 extJS 进行 JSON 调用时,它将通过通常的 cookie 发送身份验证数据。如果您在 Piston 中使用“匿名”处理程序,但在返回数据之前手动检查用户是否已登录,那么您基本上对自己的站点使用传统身份验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 1970-01-01
      • 2012-08-30
      • 2012-01-14
      • 1970-01-01
      • 2013-05-24
      相关资源
      最近更新 更多