«MaskingStateError в Google OAuth2 Flow: предупреждение CSRF! Государство не равна в запросе и ответе»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 «MaskingStateError в Google OAuth2 Flow: предупреждение CSRF! Государство не равна в запросе и ответе»

Сообщение Anonymous »

Я работаю с API Google OAuth2 и использую библиотеку Google-auth-oauthlib в Python. Тем не менее, я продолжаю сталкиваться с несоответствием StateError при попытке завершить процесс аутентификации OAuth2. Сообщение об ошибке следующим образом: < /p>

Код: Выделить всё

Exception in thread Thread-1 (start_flow):
Traceback (most recent call last):
File "C:\Users\eymen\AppData\Local\Programs\Python\Python313\Lib\threading.py", line 1041, in _bootstrap_inner
self.run()
File "C:\Users\eymen\AppData\Local\Programs\Python\Python313\Lib\threading.py", line 992, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\eymen\PycharmProjects\gmailtempapi\test2.py", line 77, in start_flow
credentials = flow.run_local_server(port=port)
File "C:\Users\eymen\PycharmProjects\gmailtempapi\.venv\Lib\site-packages\google_auth_oauthlib\flow.py", line 458, in run_local_server
self.fetch_token(
File "C:\Users\eymen\PycharmProjects\gmailtempapi\.venv\Lib\site-packages\google_auth_oauthlib\flow.py", line 285, in fetch_token
return self.oauth2session.fetch_token(self.client_config["token_uri"], **kwargs)
File "C:\Users\eymen\PycharmProjects\gmailtempapi\.venv\Lib\site-packages\requests_oauthlib\oauth2_session.py", line 271, in fetch_token
self._client.parse_request_uri_response(
File "C:\Users\eymen\PycharmProjects\gmailtempapi\.venv\Lib\site-packages\oauthlib\oauth2\rfc6749\clients\web_application.py", line 220, in parse_request_uri_response
response = parse_authorization_code_response(uri, state=state)
File "C:\Users\eymen\PycharmProjects\gmailtempapi\.venv\Lib\site-packages\oauthlib\oauth2\rfc6749\parameters.py", line 278, in parse_authorization_code_response
raise MismatchingStateError()
oauthlib.oauth2.rfc6749.errors.MismatchingStateError: (mismatching_state) CSRF Warning! State not equal in request and response.
< /code>
 Проблема: < /strong>
Я пытаюсь автоматизировать поток Google OAuth2 с помощью Playwright и Google-Auth-oauthlib. Тем не менее, поток терпит неудачу из -за несоответствия состояния во время процесса авторизации, что приводит к ошибке CSRF (несоответствие StateError). Я использую многопоточный подход для обработки потока OAuth2, где ответ аутентификации получается через Playwright в отдельном потоке. После открытия URL -адреса авторизации и предоставлены учетные данные, я сталкиваюсь с этой проблемой.    try:
flow = InstalledAppFlow.from_client_secrets_file(
client_secrets_file,
scopes=SCOPES)
redirect_uri = f"http://localhost:{port}"
flow.redirect_uri = redirect_uri
auth_url, _ = flow.authorization_url()
print(f"Opening browser for authorization of {email}")

def start_flow(flow, port, event):
global credentials
credentials = flow.run_local_server(port=port)
event.set()

event = threading.Event()
flow_thread = threading.Thread(target=start_flow, args=(flow, port, event))
flow_thread.start()
with sync_playwright() as playwright:
authorization_response = run(playwright, email, auth_url)

event.wait()
Ошибка добавляется во время вызова flow.run_local_server (), и она, по-видимому, связана с параметром состояния в запросе OAuth2. /> Вопрос: < /strong> < /h1>
Что может вызвать ошибку CSRF и параметр состояния несоответствия? Как я могу решить эту проблему и успешно завершить процесс аутентификации OAuth2?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... equal-in-r
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»