Войдите в систему с различными учетными записями Google - PullRequest
0 голосов
/ 25 апреля 2019

У меня была проблема с моим сайтом 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>
...
...