gpt4 book ai didi

python - django login_required 装饰器,即使在登录后也总是重定向到登录页面

转载 作者:行者123 更新时间:2023-12-04 17:51:26 25 4
gpt4 key购买 nike

views.py 中的代码

def custom_login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('main')
else:
return redirect('login')
else:
user = AuthenticationForm()
return render(request, 'index.html', {'form': user})

@login_required
def main(request):
return render(request, 'main.html')

网址.py

urlpatters =[url(r'^$', views.custom_login, name='login'),
url(r'^main', views.main, name='main')]

在 settings.py 中

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',]

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',]

LOGIN_URL = 'login'
LOGIN_REDIRECT_URL = 'main'

如果我不在 main 上放置 login_required 装饰器,我可以重定向到 main。但是如果我使用 login_required 装饰器,我将在使用 URL http://localhost:9000/sample_app/?next=/sample_app/main 登录后被重定向回登录页面我正在使用 python3 和 django

更新我犯了一个愚蠢的错误,我在我的设置中启用了这些设置。SESSION_COOKIE_SECURE = True

CSRF_COOKIE_SECURE = True

拒绝正常的 http 请求。但它可以使用 SSL

最佳答案

我犯了一个愚蠢的错误,我在我的设置中启用了这些设置。

SESSION_COOKIE_SECURE = True

CSRF_COOKIE_SECURE = True

拒绝正常的 http 请求。禁用它在 http 中有效。但它可以使用 SSL

关于python - django login_required 装饰器,即使在登录后也总是重定向到登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44480468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com