(O) Auth с ExtJS - PullRequest
       20

(O) Auth с ExtJS

1 голос
/ 20 апреля 2010

сегодня я пытался заставить работать django-поршень и ExtJS. Я использовал пример отдыха ExtJS и пример поршня, чтобы создать небольшое спокойное веб-приложение. Все отлично работает, кроме аутентификации.

Каков наилучший способ заставить Basic / Digest / OAuth-аутентификацию работать с ExtJS? Я не уверен, где установить имя пользователя / пароль.

Спасибо

1 Ответ

0 голосов
/ 24 мая 2010

Если вы хотите использовать поршень с 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, но вручную проверяете, что пользователь вошел в систему, прежде чем возвращать данные, то вы по существу используете традиционную аутентификацию для своего собственного сайта.

...