0

カスタムのログイン/ログアウト機能を実装しようとしています。私の要件は、組み込みの django ログイン機能とは少し異なります。したがって、データベースに値 0 / 1 を入力して、ユーザーがログインしているかどうかを確認できるように、この機能を実装する必要があります。私はそれのためのブール値を持っています。ここでの質問は本当に次のとおりです。ユーザーオブジェクト/ユーザーがログインしていることを示す変数 (私の場合users.is_logged_in = True:) をすべての html テンプレートに渡して、ユーザー (および私のアプリケーション) がそれを認識できるようにするにはどうすればよいですか?また、すべての HTML ページのリンクをクリックしてログアウトできるはずです。ユーザーが正常にログインしたときに、プレースホルダーのようなものを作成して作成できるグローバル テンプレートはありますか? 私のコードは次のとおりです。

def checkIfUserIsValid(request, template_name='appCenter.html'):
email = str(request.POST.get('email','')).strip()
password = str(request.POST.get('password','')).strip()
try:
    users = Users.objects.get(email = email, password = password)
    users.is_logged_in = True
    users.save()
    return direct_to_template(request, template_name, context_instance=RequestContext(request))
except Users.DoesNotExist:
    incorrectUserOrPassError = "Incorrect Username or Password. Please try again."
    return render_to_response('index.html', {'incorrectUserOrPassError':incorrectUserOrPassError},
                                  context_instance=RequestContext(request))

def logOutUser(request, template_name='index.html'):
    return direct_to_template(request, template_name, context_instance=RequestContext(request))

PS: render() メソッドを調べました..

return render(request,'appCenter.html',{'users':users})

このようなことをして、テンプレートをグローバル テンプレートなどとして利用できますか? しかし、私が見る問題は、ユーザーが認証されるとすぐに、ユーザーを appCenter.html にリダイレクトする必要があることです。

4

1 に答える 1

4

これをしないでください。

プレーンテキストのパスワードをデータベースに保存しています。これは安全ではありません。本当に、これをしないでください。

userDjango の組み込み認証システムでは、 (コンテキスト プロセッサを介して) すべてのテンプレートにオブジェクトが既に含まれているため、これ以上のことはできません。それを使用します。

于 2013-03-05T19:49:05.367 に答える