必要な承認。いくつかの記事を読み、すべての組み込みメカニズムについて読み、それを実行します。彼はやり始めました。
登録はモジュールdjango-registration
を取り、自分でログインを書き込み、libを使用しdjango.contrib.auth
ました。次のようになります。ログインページでログインします。すべて問題ないようですが、別のページに移動すると、認証が奇跡的に消えます。私が理解しているように、認証はセッションに書き込まれず、ログインページでのみ認証を取得します。
私は次のことをしました:
- ログインページで承認されました。
User
オブジェクト全体をに記録しましたsession
。- 各ページで、ページが読み込まれるときに最初に確認するのは
User
、セッションデータがあるかどうかです。ある場合は、そこから読み取ります。
ソースは次のようになります。
def login_user(request):
state = "Please log in below..."
username = password = ''
if request.POST:
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
state = "You're successfully logged in!"
else:
state = "Your account is not active, please contact the site admin."
else:
state = "Your username and/or password were incorrect."
request.session['user'] = user
return render(request,'auth.html',{'state':state, 'username': username, 'info':'info'})
と私が読んだページsession
:
@csrf_protect
def home(request):
if "user" in request.session:
user = request.session['user']
else:
user = None
return render_to_response('home.html', {'user_name' : user}, context_instance = RequestContext(request))
しかし、私はそれが非常に愚かな方法だと思います。より適切な方法を提案できますか?