У меня была проблема с моим сайтом django при переключении между различными аккаунтами Google.
Мой сайт django использует social-app-django и Google OAuth2.0 для аутентификации.Сначала я захожу с учетной записью Google (userA).Затем я вышел из своего веб-сайта и попытался войти в систему с другой учетной записью Google (userB).Но я автоматически захожу как пользователь А, когда нажимаю кнопку входа.Мне пришлось очистить все куки браузера вручную, чтобы войти в систему как пользователь B.
Некоторые данные не были удалены, когда пользователь А вышел из системы.Какие настройки мне нужно изменить?Или я что-то упустил?Я не думаю, что отключение - это то, что я ищу.Мне просто нужно переключиться на другую учетную запись Google.
setting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
...
'testLogin', #Index page for testing social auth
'social_django',
]
AUTHENTICATION_BACKENDS = (
'social_core.backends.google.GoogleOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '***'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '***'
SOCIAL_AUTH_URL_NAMESPACE = 'social'
LOGIN_URL = '/auth/login/google-oauth2/'
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'
#These are not default settings. Listed in case they might cause any problem
APPEND_SLASH=True
SESSION_ENGINE='django.contrib.sessions.backends.cache'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'oracle': {
...
}
}
...
urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.auth import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('testLogin.urls')), #Index page for testing social auth
path('', include('social_django.urls', namespace='social')),
path('logout/', views.LogoutView.as_view(), name='logout'),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
testLogin.html (страница индекса для проверки социальной аутентификации)
...
<body>
{% if user.is_authenticated %}
<p>Logged as {{ user }}</p>
<a class="btn btn-primary" href="{% url 'logout' %}">Logout</a>
{% else %}
<a class="btn btn-primary" href="{% url 'social:begin' 'google-oauth2' %}">Login</a>
{% endif %}
</body>
...