Я использую oauth2 (чтение контактов из аккаунта Google), для которого я использую вызов jquery ajax, я вызываю мой бэкэнд (Flask), который перенаправляет, когда учетные данные отсутствуют в сеанс
Теперь во внешнем интерфейсе я получаю код состояния 302, но как мне захватить URL перенаправления, когда сервер ожидает, что браузер наберет go?
Популярный ответ, который я нашел, был: включите URL перенаправления в объекте ответа и используйте его на веб-интерфейсе для перенаправления. Ссылочный поток
Но я не уверен, как добавить URL перенаправления к Flask Объекту ответа в виде пары ключ-значение. Может кто-нибудь, пожалуйста, помогите мне здесь !!!
Ajax вызов:
$.ajax({
url: backend_host + "/read_contacts_api?_=" + new Date().getTime(),
method: "POST",
cache: false,
contentType: false,
processData: false,
data: fd,
success: function (data) {
//Solution proposed in the referenced thread above
if (data.redirect) {
// data.redirect contains the string URL to redirect to
window.location.href = data.redirect;
} else {
//success
}
},
error: function (data) {
}
});
Объект JSON data "построен" на сервере: data.redirect
Flask:
@app.route('/read_contacts_api')
def read_contacts():
if 'credentials' not in session:
return redirect(url_for('authorize'))
//actual api call to read contacts: Working example can be found [here][2]
@app.route('/authorize')
def authorize():
response = flask.redirect("googleauthurl.com")
return response
В общем, я хочу получить URL-адрес от объекта ответа Flask (data.redirect
) на стороне клиента, чтобы я мог использовать window.location.href = data.redirect;
для перенаправления.
Высоко ценю вашу помощь здесь.