0

我正在使用 Flask 作为 api 和 Vue js 作为前端来构建一个 SPA。我正在使用 Authlib 进行用户身份验证并计划使用 Facebook OAuth。我已经在Facebook 上尝试过这个例子,它正在工作。但我想以 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 中进行重定向?

4

2 回答 2

1

您的意思是要在 JSON 响应中返回一个 url 值吗?

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

喜欢上面的代码吗?

于 2019-10-25T09:59:41.940 回答
0

根据文档

>>> 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'
于 2019-10-22T16:53:32.780 回答