Испытательная колба-oauthlib локально без https

Я реализовал сервер oauth2 и клиент oauth2, используя флак-oauthlib.

Когда я пытаюсь проверить локально, клиент возвращает InsecureTransportError и сообщает мне, что я должен использовать https.

Есть ли способ проверить приложение локально без https?

Клиент работает на 127.0.0.2:5000, а сервер работает на 127.0.0.1:5000.

Спасибо

Ответ 1

Из http://requests-oauthlib.readthedocs.org/en/latest/examples/real_world_example.html:

Следует отметить, что Oauth2 работает через слой SSL. Если ваш сервер не параметризованный для разрешения HTTPS, метод fetch_token поднимет oauthlib.oauth2.rfc6749.errors.InsecureTransportError. Большинство людей не устанавливайте SSL на своем сервере во время тестирования, и это нормально. Ты можешь отключите эту проверку двумя способами:

  • Установив переменную среды.
export OAUTHLIB_INSECURE_TRANSPORT=1
  1. Эквивалент выше вы можете установить это в Python (если у вас есть проблемы с настройкой переменных среды)
# Somewhere in webapp_example.py, before the app.run for example
import os 
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'

Ответ 2

Для OAuth1 вы можете добавить настройку

app.config.update({
    'OAUTH1_PROVIDER_ENFORCE_SSL': False
})

Для OAuth2 вы можете установить в переменной среды.

export OAUTHLIB_INSECURE_TRANSPORT=1

или во время выполнения

import os
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'

Ответ 3

Для пользователей Authlib:

export AUTHLIB_INSECURE_TRANSPORT=1

Или, если вы хотите установить это программно:

# Somewhere in webapp_example.py, before the app.run for example
import os 
os.environ['AUTHLIB_INSECURE_TRANSPORT'] = '1'

Я знаю, что не отвечая на вопрос, но каждый раз, когда я спрашиваю Google об этом, я попадаю на эту страницу.