何らかの理由でログイン後、ページはLOGIN_REDIRECT_URLが指し示す場所にリダイレクトされず、空白のページ/ accounts/login/code 200に残ります。したがって、ログイン後に空白のページが表示され、リフレッシュ(F5)してLOGIN_REDIRECT_URLに移動します。リフレッシュ後、私は正常にログインしました。Django&Allauthログインリダイレクトの問題
ACCOUNT_LOGOUT_REDIRECT_URLは正常に動作し、コード302を返し、空白ページなしで直接リダイレクトしますが、LOGIN_REDIRECT_URLは正しく動作しません。更新後にLOGIN_REDIRECT_URLを変更すると、変更された場所にリダイレクトされますが、これは正常に動作します。しかし、まず私は常に空のページ/ accounts/login /についています。なぜこれが起こるのか分からない。
エラーメッセージはありませんが、AllAuth LoginViewで問題は見つかりませんでした。
表示するコードはあまりありません。これは、組み込みのdjangoとallauthの機能です。これは、他のアプリケーションでは、より小さなdjangoバージョンでは成功しています。これはdjango 1.10.1の私の最初のプロジェクトです。 jqueryモバイル機能を備えた私の最初のモバイルプロジェクトです。だからここに私の設定です:
DEBUG = True
ALLOWED_HOSTS = ['*']
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
#'django.contrib.flatpages',
'appconf',
'avatar',
'myApp',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
'django.contrib.admin',
'lockdown',
]
MIDDLEWARE_CLASSES = [
'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',
#'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'lockdown.middleware.LockdownMiddleware',
]
LOGIN_REDIRECT_URL = '/'
ACCOUNT_LOGOUT_REDIRECT_URL = '/'
これは、ログインフォームです:
<a class="login_link" href="#popupLogin" data-rel="popup" data-position-to="window" class="" data-transition="pop">Login</a>
<div data-role="popup" id="popupLogin" data-theme="a" class="ui-corner-all">
<form id="login_form" method="POST" action="{% url 'account_login' %}">
{% csrf_token %}
<div style="padding:10px 20px;">
<h3>Please sign in</h3>
{{loginForm.login}}
{{loginForm.password}}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<button type="submit" class="ui-btn ui-corner-all ui-shadow ui-btn-b ui-btn-icon-left">Sign in</button>
</div>
</form>
{% if loginForm.errors %}
{% for field in loginForm %}
{% for error in field.errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in loginForm.non_field_errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
</div>
そして、ここでは、端末で何が起こるかです:
ログアウト:
[14/Sep/2016 06:36:18] "POST /accounts/logout/ HTTP/1.1" 302 0
[14/Sep/2016 06:36:24] "GET/HTTP/1.1" 200 12295
ログイン:
[14/Sep/2016 06:36:34] "POST /accounts/login/ HTTP/1.1" 200 46
ログイン後
マニュアルリフレッシュ:アカウントのサインアップのためのallauthを使用した場合
[14/Sep/2016 06:37:00] "GET /accounts/login/ HTTP/1.1" 302 0
[14/Sep/2016 06:37:00] "GET/HTTP/1.1" 200 11434
UPDATE 同じ問題が表示されます。 url accounts/signup /は、サインアップフォームを含む実際のテンプレートにリダイレクトするためにリフレッシュする必要がある空白のページです。私はまだそれを解決していない。
このロックダウンアプリは何ですか? – e4c5
Lockdownはページの前にバリアを置き、誰も干渉しないで作業できるようにします。それはこの問題に関連していない、私はそれをオフにしようとした、動作は同じです。 – Stefan