Форум сайта python.su
Написал следующий код для авторизации пользователей по определенному hash:
class UserAuthMiddleware(object): def process_request(self, request): if 'auth_hash' in request.GET: auth_hash = request.GET['auth_hash'] try: data = signing.loads(auth_hash, max_age=7*24*60*60) except signing.BadSignature: data = {} if data: try: user = User.objects.get(username=data['username']) except User.DoesNotExist: user = None if user: user.backend = 'core.backend.Backend' login(request, user)
Офлайн
лень проверять, а если request.user = user добавить выше login?
юзать токены в GET небезопасно если они не одноразовые ;)
+ из доки:
When you're manually logging a user in, you must call authenticate() before you call login().
Отредактировано slav0nic (Июль 2, 2012 21:48:36)
Офлайн