2012年12月18日火曜日

Djangoで、メールアドレスとパスワードを利用したユーザ認証

すみません。このままだと、ユーザ認証のみで、ログインはできません。こちらの記事を参考にどうぞ。

Django(1.4.2)で、ユーザ認証です。authenticate(ユーザーネームusername, パスワードpassword)を利用すると簡単にユーザ認証できるようですが、今回は、メールアドレスとパスワードを利用して設定してみました。check_passwordを利用すると、難なく実現できるようです。何とか動いている?

authenticateを利用する場合
from django.contrib.auth import authenticate

username = form.cleaned_data['username']
password = form.cleaned_data['password']

user = authenticate(username=username, password=password)
if user is not None:
    print "OK"
else:
    print "NG"
メールアドレスとパスワードを利用する場合
email = form.cleaned_data['email']
password = form.cleaned_data['password']

try:
    user = User.objects.get(email=email)
    if user.check_password(password):
        messages.info(request, 'いらっしゃいませー。')
        return HttpResponseRedirect('/') 
    else:
        messages.error(request, '認証に失敗しました。')

except User.DoesNotExist:
    messages.error(request, '認証に失敗しました。')
実際に設定してみたサイトがこちら



参考サイト
Django Authentication using an Email Address(micah carrick)

0 件のコメント:

コメントを投稿