私は、ログインする機能を制限し、指定された時間帯に認証される必要があるアプリケーションに取り組んでいます。午前8時から午後5時までログインの機能を制限するために、カスタムの認証バックエンドを作成しました。ここでは、authenticate()
メソッドは、現在の時刻が許可された時間内にある場合にのみユーザーオブジェクトを返します。Django:ユーザーのセッションを時間制限する
ここで、指定した時間が経過すると、ユーザーの認証セッションを終了します。
セッションexpiry_date
日付を設定し、クッキーのExpiry
は、これを達成するための最良の方法のようですが、いくつかの時間のためのソースコードでDjangoのドキュメントを読んで掘り後、私はそれに良い解決策を見つけていませんでした。これはどうすればいいですか?どんな助けもありがとうございます。
私は完全に変更していません。デフォルトのバックエンドを拡張し、 'authenticate()'メソッドで 'super()'を最初に呼び出してから、認証されたユーザユーザーを返し、正常に認証されたことを意味します)。デフォルトのバックエンドは100%動作しています。 –
指定された時間外にウェブサイトを使用してログインしたユーザーの場合は、まだログアウト/警告を表示する必要があります。ただし、AuthBackendは、ユーザーが有効なセッションでリクエストしていても、関数デコレータまたはミドルウェアで確認する必要がある場合は使用されません。 – blacklwhite