Есть ли другое решение, чем использование cookie-файлов для передачи запроса-ответа от серверной части к клиентской с помощью функции экспресс-реагирования? - PullRequest
0 голосов
/ 05 октября 2019

У меня есть следующий запрос API Google Analytics, который я выполняю после процесса аутентификации Google. До сих пор единственный способ передать ответ клиентскому интерфейсу - сохранить ответ в файле cookie. Тогда я могу легко прочитать это с реагировать. Однако мне не очень нравится этот вариант. Какой будет моя альтернатива? Как я мог передать ответ иначе?

   router.get(
        "/auth/google/callback",
        passport.authenticate("google", { failureRedirect: "/error", session: false }),
        function(req, res) {
            var token = req.user.token;
        request('https://www.googleapis.com/analytics/v3/management/accounts?access_token=' + token,  
    function (error, response, body) {
      console.log(body)
      console.log(response)
              let views = []
       JSON.parse(body).items.forEach(view => {
                views.push({
                  name: view.webPropertyId + ' - ' + view.name + ' (' + view.websiteUrl + ')'
                })
              })
    res.cookie("data", views); 
    res.json(views)
    });
        }
    );

1 Ответ

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

На внешнем интерфейсе вызовите ваш бэкэнд, используя что-то вроде fetch, а затем проанализируйте ответ в JSON. Это может выглядеть примерно так:

fetch('/auth/google/callback',
  { 
   method: 'GET',
   credentials: 'same-origin'
  })
.then(response => response.json());

А на бэкэнде просто используйте res.send(views), где views - это объект.

Возможно, вам придется добавить дополнительные заголовки для аутентификации (так какпохоже, что вы ищете токен в вызове API), но это просто вопрос добавления его в объект параметров.

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