2

非常に基本的なログイン アプリケーションを作成しました。LOGIN_URL、LOGIN_REDIRECT_URL、および LOGOUT_URL は正常に機能します。

問題は、正常にログインしてからウィンドウ(ブラウザ)を閉じてからブラウザを再度開くと、URL(ログインしている場合にのみ表示されると思われるURL)を完全に検索して、アプリケーションを使用できることです。再度ログインせずに。これで終わりではありません: Chrome と Firefox の 2 つの別個のブラウザーを同時に開き、1 つのみでログインした場合、他のブラウザーから問題なくアプリケーションを使用できます。私はこれが起こってほしくありません。index ビュー (ログインしている場合にのみ表示されるページ) の urls.conf で login_required を使用してみました。クラス ビューでは、stronhold と django-braces を使用してみました。これを行う他の方法はありますか?コードを見たい場合は、私に知らせてください。djangoが実装するログインとログアウトを使用しています(auth)。あなたより

4

3 に答える 3

5

これは古い投稿であることは知っていますが、おそらくその答えは将来他の人に役立つでしょう. ワークフローがクラスベースのビューである場合は、次を使用する必要があります: LoginRequiredMixin

from django.contrib.auth.mixins import LoginRequiredMixin
from django.views import generic

class CreateGroup(LoginRequiredMixin, generic.CreateView):
    fields = ('name', 'description')
    model = Group

LoginRequired ミックスイン

クラスベースのビューを使用する場合、LoginRequiredMixin を使用して、login_required と同じ動作をアーカイブできます。この mixin は、継承リストの左端にある必要があります。

https://docs.djangoproject.com/en/2.0/topics/auth/default/

于 2017-12-21T11:27:57.277 に答える
0

ログインがリダイレクトされるビューで、次を追加できます。

def after_login(request,..):
    if not request.user.is_authenticated():
        redirect('some-non-existence-page-or-404',...)
    #Your code
    return
于 2014-07-07T20:58:42.957 に答える