2010-04-20 36 views
0

今天我试图让django活塞和ExtJS工作。我用ExtJS宁静的例子和活塞的例子来创建一个有点宁静的webapp。一切工作正常,除了身份验证。(O)Auth与ExtJS

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

感谢

回答

0

如果你想使用活塞与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发送认证数据。如果您在活塞中使用“匿名”处理程序,但在返回数据之前手动检查用户是否已登录,那么您实际上使用传统身份验证作为自己的站点。