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