私はDjangoにまだまだ新しく、ログインメソッドを書くつもりです。これを実行してセッションに情報を保存するための最良のロジックは何ですか?ユーザーはログインを維持できますか?セッションでDjango認証/ログインロジックを書く
が、私はこのようになります認証のためのモデルがあります。基本的に
class User(models.Model):
email_address = models.CharField(max_length=128)
password = models.CharField(max_length=128) # sha512 of password w/salt
password_salt = models.CharField(max_length=128) # sha512 of random number as salt
を、私はこのようなビューのログイン方法を記述します
@ratelimit_post(minutes = 1, requests = 5, key_field = 'email_address')
def login(request):
requestedUser = User.objects.get(email_address=request.POST['email_address'])
if requestedUser == None:
fail_no_user()
passwordHash = sha512(request.POST['password'] + requestedUser.password_salt)
if requestedUser.password != passwordHash:
fail_wrong_password()
else:
request.session['user_id'] = user.id
request.session['is_auth'] = True
success_login()
することは、これはの安全な方法ですDjangoとのログインやセッションを処理していますか?私はまだまだ新しいものなので、これが受け入れられるアプローチかどうかはわかりません。私がここで紛失しているセキュリティとパフォーマンス上の措置はありますか?
Djangoには認証モジュールが付属しています。あなたはそれを試しましたか? –
私自身のモデルを使用する必要があります。それはそのように働くだろうか?彼らのモデルを使用しなければならないようです。 –
あなたはそのモデルに何か間違いがありますか?私はあなたの質問は、あなたがそのモデルのユーザーのためのより多くの情報/カスタムを持ってほしいという事実から生じると思います。代わりに、Django組み込みユーザーモデルとOneToOne関係を持つUserProfileというモデルを作成できます。 –