Authlib - передача авторизованного URL как json - PullRequest
0 голосов
/ 22 октября 2019

Я строю SPA, используя Flask в качестве API и Vue JS в качестве внешнего интерфейса. Я использую 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.

Есть ли в библиотеке метод для получения URL-адресаДиалог в Facebook, чтобы я мог передать его как json и выполнить перенаправление в Vue?

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Вы имеете в виду, что хотите вернуть значение URL в ответе JSON?

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

Как и в приведенном выше коде?

0 голосов
/ 22 октября 2019

Согласно документации :

>>> 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'
...