Я использую API OAUTH для проверки доступа к календарю Google пользователей. Они не регистрируются в моей системе, используя OAUTH, просто принимая мой сайт для доступа к их данным.OAUTH2gВыход пользователя из их сеанса Django
Проблема заключается в том, что если пользователь вышел из своей учетной записи google и после того, как он набрал подтверждение, он отключает их из сеанса, и у меня нет способа связать их с резервным копированием.
Это работает, если они уже вошли в учетную запись google в своем браузере и нажали кнопку accept, они будут перенаправлены на нужную страницу.
Я повторяю ошибку, когда кеш, куки-файлы ясны, и они должны переучиться в свою учетную запись google для проверки.
Я попытался сохранить идентификатор сеанса и т. Д., Но параметр запроса не содержит те же данные запроса, что и исходное представление, поэтому в данных, которые я пытаюсь получить, возникает конфликт.
Пользователь вошел в систему, используя стандартные библиотеки Django для модели учетных данных.
КОД
FLOW = flow_from_clientsecrets(
CLIENT_SECRETS,
scope='https://www.googleapis.com/auth/calendar.readonly',
redirect_uri='http://127.0.0.1:8000/oauth2callback')
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''» '' '' '' '' ' Основная функция, связанная с верификацией auth ' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
def index(request):
current_user = User.objects.get(username=request.user.username)
storage = Storage(CredentialsModel, 'id', current_user, 'credential')
credential = storage.get()
if credential is None or credential.invalid == True:
FLOW.params['state'] = xsrfutil.generate_token(settings.SECRET_KEY,
request.user.id)
authorize_url = FLOW.step1_get_authorize_url()
return redirect(authorize_url)
'' '' '' '' '' '' ''' «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «»» '' '' '' ' Пользователь затем вызывает функцию данных после аутентификации ' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' '' '
def auth_return(request):
print("THE CURRENTLY REQUESTED USER IN THIS SESSION REQUEST IS %s"%(request.user.username))
credential = FLOW.step2_exchange(request.REQUEST)
try:
current_user = User.objects.get(id=request.user.id)
except:
return HttpResponseRedirect("/login")
storage = Storage(CredentialsModel, 'id', current_user, 'credential')
storage.put(credential)
return HttpResponseRedirect("/get_cal")