Как я могу использовать oauth.create_client в файле, отличном от того, который я назвал конструктором в Authlib? - PullRequest
0 голосов
/ 09 апреля 2020

Мне нужно подключиться к веб-сайту с помощью Authlib. Я новичок ie в этом, поэтому я изучил некоторые учебники: один ., два , три Все они дали следующую структуру:

  1. создать экземпляр app;
  2. создать экземпляр oauth, передав app конструктору OAuth;
  3. с использованием oauth в декораторы функций маршрутизации.

Эта структура находится в том же файле. Проблема в том, что мне нужно использовать экземпляр oauth в файле, отличном от того, который был создан (пункт 3 сверху), и я не знаю, как это сделать. Некоторая помощь более чем необходима.

Полезный код:

__ init__py :

from authlib.integrations.flask_client import OAuth
app = Flask(__name__, template_folder="templates", static_folder="static")
app.config.from_object('config.Config')
oauth = OAuth(app)
oauth.register(name='Hattrick', client_id='...',
                       client_secret='...',
                       request_token_url='...',
                       request_token_params=None,
                       access_token_url='...',
                       access_token_params=None,
                       authorize_url='...', authorize_params=None,
                       api_base_url='...', client_kwargs=None)

/ index / index_routes.py

@index_bp.route('/LoginToHattrick')
def LoginToHattrick():
    hattrick = oauth.create_client('Hattrick')
    return hattrick.authorize_redirect('...')

1 Ответ

0 голосов
/ 11 апреля 2020

Переместить определение oauth в индекс маршрутов :

@index_bp.route('/LoginToHattrick')
def LoginToHattrick():
    oauth = OAuth(wsgi.app)
    oauth.register(name='Hattrick', client_id='...',
                       client_secret='...',
                       request_token_url='...',
                       request_token_params=None,
                       access_token_url='...',
                       access_token_params=None,
                       authorize_url='...', authorize_params=None,
                       api_base_url='...', client_kwargs=None)
    hattrick = oauth.create_client('Hattrick')
    return hattrick.authorize_redirect('...')
...