OAuth с Flask, Jquery: как перехватить URL перенаправления из flask объекта ответа во внешнем интерфейсе - PullRequest
0 голосов
/ 10 апреля 2020

Я использую 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; для перенаправления.

Высоко ценю вашу помощь здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...