1

今日、django-piston と ExtJS を動作させようとしました。ExtJS の安静な例とピストンの例を使用して、少し安静な Web アプリケーションを作成しました。認証以外はすべて正常に動作します。

基本/ダイジェスト/OAuth 認証を ExtJS で動作させる最良の方法は何ですか? Atm ユーザー名/パスワードをどこに設定すればよいかわかりません。

ありがとう

4

1 に答える 1

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を介して認証データを送信するということです。Pistonで「匿名」ハンドラーを使用しているが、データを返す前にユーザーがログインしていることを手動で確認する場合は、基本的に、自分のサイトに従来の認証を使用します。

于 2010-05-24T17:36:57.603 に答える