понедельник, 28 сентября 2009 г.

Авторизация с использованием E-mail

Доброго времени суток!
Иногда нужно сделать авторизацию, чтобы вместо логина был его е-мейл. Я сделал это так:

def authoritation_ajax(request):
if request.method == u'POST':
#получаем методом пост юзернейм(помним что юзернейм это мыло юзера ) и пароль
username = request.POST['username']
password = request.POST['password']
#попытаемся получить с таким мылом юзера, если удалось усьо ОК если нет то нафиг
try:
user = User.objects.get(email=username)
#проверяем пароль
if user.check_password(password):
#усли удалось проверить пароль, тогда
user = auth.authenticate(username=user.username, password=password)
#ну и авторизируем юзера
auth.login(request, user)
if user.is_authenticated():
soob = {'soob':user.id}

else:
soob = {'soob':"No pass"}
except User.DoesNotExist:
soob = {'soob':None}
#здесь мы генерим json для аякса
soob = simplejson.dumps(soob)
return http.HttpResponse(soob, mimetype='application/json')

Комментариев нет:

Отправить комментарий