2017-12-19 9 views
1

django認証を使用する際に問題があります デコレータ@login_requiredを使用するビューがあります。ビュー間のDjango認証

ログに記録されると、ユーザーはページに進み、データを入力して次のページにアクセスするためにポストリクエストを使用しますが、前のページに戻ると、djangoはログインフォームを再び表示します。 これを防ぐ手段はありますか?

私は、セッションでポストに戻るためにボタンを使うことを考えていたので、djangoは再度ログインを求めませんでしたが、それができるかどうかはわかりません。

+0

ボタンバックのブラウザを使用したり、Webページの一部であるボタンを使用して「戻るしようとすると」? – manassehkatz

答えて

2

あなたはログインしているユーザーのログインフォームを表示したくない場合は、私は彼らがすでにログインしている場合は、別のページにユーザーをリダイレクト勧め:

def login_page(request): 
    if request.user.is_authenticated: 
     return redirect('some-other-page') 
    [...the rest of the login-page logic goes here; pass form through via context...] 

あなたはまた、記録されたを示すことができました-inユーザー彼らはすでにテンプレートのロジックを使用してログインしていることを告げるログインページ上のメッセージ:

{% if request.user.is_authenticated %} 
    <p>You are already logged in</p> 
{% else %} 
    <form> 
     {{ form }} 
     <input type='submit'>Submit</input> 
    </form> 
{% endif %}