我如何在与 Authlib 中调用构造函数的文件不同的文件中使用 oauth.create_client?

How can I use oauth.create_client in different file than the one I called the constructor, in Authlib?

我需要使用 Authlib 连接到一个网站。我是这方面的新手,所以我研究了一些教程:one., two, three 他们都给出了以下结构:

  1. 创建 app 实例;
  2. 创建 oauth 实例,将 app 传递给 OAuth 构造函数;
  3. 在路由函数装饰器中使用 oauth

这个结构在同一个文件中。问题是我需要在与创建实例(上面的第 3 点)不同的文件中使用 oauth 实例,但我不知道该怎么做。一些帮助是不必要的。

有用代码:

__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('...')

oauth 定义移动到 index routes:

@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('...')