Authlib - 通过授权 url 作为 json

Authlib - passing authorize url as json

我正在构建一个 SPA,使用 Flask 作为 api 并使用 Vue js 作为前端。我正在使用 Authlib 进行用户身份验证并计划使用 Facebook OAuth。我已经在 Facebook 上尝试 the example 并且它正在运行。但我想以 RESTful 的方式构建它。我想要做的是从示例中的 app.py 更改这部分:

@app.route('/login')
def login():
    redirect_uri = url_for('auth', _external=True)
    return oauth.google.authorize_redirect(redirect_uri)

到 json.

库中是否有获取 Facebook 对话框 url 的方法,以便我可以将其作为 json 传递并在 Vue 中进行重定向?

根据 documentation:

>>> import requests_oauthlib
>>> from requests_oauthlib import OAuth2Session
>>> from requests_oauthlib.compliance_fixes import facebook_compliance_fix
>>> facebook = OAuth2Session(client_id='test', redirect_uri='https://test.me')
>>> facebook = facebook_compliance_fix(facebook)
>>> authorization_url, state = facebook.authorization_url('https://www.facebook.com/dialog/oauth')
>>> authorization_url
'https://www.facebook.com/dialog/oauth?response_type=code&client_id=test&redirect_uri=https%3A%2F%2Ftest.me&state=bfipsir5GsKc1CbdPZCgBT0jIn2eq6'

您是说要在 JSON 响应中 return 一个 url 值吗?

resp = oauth.google.authorize_redirect(redirect_uri)
url = resp.location
return jsonify(url=url)

喜欢上面的代码吗?