2013-03-22 43 views
8

30日間のような特定の間隔の後にユーザーのパスワードを有効期限切れにするDjangoアプリはありますか?私はdjangpの認証を使用しており、それを拡張したり、コミュニティアプリを使いたいと思っています。Django強制パスワードの有効期限

  1. が最後に更新されたパスワードの日付を格納するためのユーザプロファイルにフィールドを追加しました:。私がこれまで試してみました何

  2. ログイン方法を拡張してこの日付を確認し、ユーザーをパスワード変更ページにリダイレクトします。パスワードが変更されるまで

    1. は、サイトにアクセスするユーザーをブロックするには:私は混乱しています何

  3. ユーザーはログインすることはできません。また、ページに直接アクセスするためにURLを入力するだけで済みます。

私はミドルウェアをリソースの制約として使用したくないことに注意してください。

答えて

9

あなたは正しい軌道にいるようです。最後に更新されたパスワードの日付を設定し、パスワード変更ページにリダイレクトされた場合は、タイムデータが30日以上かどうかを確認します。 timedeltaが30日を超えている場合は、ユーザーがリクエストオブジェクトに実際にログインしない限り、ログインビューは基本的に変わりません。

from datetime import date, timedelta 
from django.contrib.auth import authenticate, login 

def my_view(request): 
    username = request.POST['username'] 
    password = request.POST['password'] 
    user = authenticate(username=username, password=password) 
    if user is not None: 
     if user.is_active: 
      if date.today() - user.password_date > timedelta(days=30): 
       # Redirect to password change page 
      else: 
       login(request, user) 
       # Redirect to a success page. 
     else: 
      # Return a 'disabled account' error message 
    else: 
    # Return an 'invalid login' error message. 
+0

これはマット、理にかなっています。私はこれを試してみる。ありがとう –

関連する問題