使用 Authlib 时如何修复 'function' 对象没有属性 'create_authorization_url'?
How to fix 'function' object has no attribute 'create_authorization_url' when using Authlib?
我正在编写一个 API 连接到 Budget Insight https://www.budget-insight.com/ 以从最终用户那里获取财务数据。
Budget Insight 在 Web 视图上使用 Oauth2 身份验证,要求用户输入其凭据以生成代码,然后用该代码交换令牌。
我已经为我的项目安装了 authlib 及其依赖项,并尝试了不同的方法来实现它
第一种方式
budgea = OAuth2Session(
client_id="37246252",
client_secret=os.getenv("BUDGEA_CLIENT_SECRET"),
redirect_uri="http://127.0.0.1:5000/budgea_callback",
)
第二种方式
budgea = oauth2.register(
"budgea",
client_id="37246252",
client_secret=os.getenv("BUDGEA_CLIENT_SECRET"),
access_token_url="https://ynab-fr-sandbox.biapi.pro/2.0/auth/token/access",
authorize_url="https://ynab-fr-sandbox.biapi.pro/2.0/auth/webview/connect/select?client_id=37246252&redirect_uri=http:%2F%2F127.0.0.1:5000%2Fbudgea_callback",
api_base_url="https://ynab-fr-sandbox.biapi.pro/2.0/",
client_kwargs=None,
)
接着是
@app.route("/budgea")
def budgea():
authorize_url = "https://ynab-fr-sandbox.biapi.pro/2.0/auth/webview/connect/select?client_id=37246252&redirect_uri=http:%2F%2F127.0.0.1:5000%2Fbudgea_callback"
uri, state = budgea.create_authorization_url(authorize_url)
return uri
两种方式 return AttributeError: 'function' object has no attribute 'create_authorization_url' 当我访问 /budgea 路由时。
您使用的 Authlib 是什么版本?请使用最新版本的Authlib。
- 然后尝试
create_authorization_url
和 OAuth2Session
方式
第二种方式是Flask客户端方式,你应该使用
return client.authorize_redirect(callback_uri)
我正在编写一个 API 连接到 Budget Insight https://www.budget-insight.com/ 以从最终用户那里获取财务数据。
Budget Insight 在 Web 视图上使用 Oauth2 身份验证,要求用户输入其凭据以生成代码,然后用该代码交换令牌。
我已经为我的项目安装了 authlib 及其依赖项,并尝试了不同的方法来实现它
第一种方式
budgea = OAuth2Session(
client_id="37246252",
client_secret=os.getenv("BUDGEA_CLIENT_SECRET"),
redirect_uri="http://127.0.0.1:5000/budgea_callback",
)
第二种方式
budgea = oauth2.register(
"budgea",
client_id="37246252",
client_secret=os.getenv("BUDGEA_CLIENT_SECRET"),
access_token_url="https://ynab-fr-sandbox.biapi.pro/2.0/auth/token/access",
authorize_url="https://ynab-fr-sandbox.biapi.pro/2.0/auth/webview/connect/select?client_id=37246252&redirect_uri=http:%2F%2F127.0.0.1:5000%2Fbudgea_callback",
api_base_url="https://ynab-fr-sandbox.biapi.pro/2.0/",
client_kwargs=None,
)
接着是
@app.route("/budgea")
def budgea():
authorize_url = "https://ynab-fr-sandbox.biapi.pro/2.0/auth/webview/connect/select?client_id=37246252&redirect_uri=http:%2F%2F127.0.0.1:5000%2Fbudgea_callback"
uri, state = budgea.create_authorization_url(authorize_url)
return uri
两种方式 return AttributeError: 'function' object has no attribute 'create_authorization_url' 当我访问 /budgea 路由时。
您使用的 Authlib 是什么版本?请使用最新版本的Authlib。
- 然后尝试
create_authorization_url
和OAuth2Session
方式 第二种方式是Flask客户端方式,你应该使用
return client.authorize_redirect(callback_uri)