我如何在与 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 他们都给出了以下结构:
- 创建
app
实例;
- 创建
oauth
实例,将 app
传递给 OAuth
构造函数;
- 在路由函数装饰器中使用
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('...')
我需要使用 Authlib 连接到一个网站。我是这方面的新手,所以我研究了一些教程:one., two, three 他们都给出了以下结构:
- 创建
app
实例; - 创建
oauth
实例,将app
传递给OAuth
构造函数; - 在路由函数装饰器中使用
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('...')