Как сделать redirect_url, содержащий данные для Google - PullRequest
0 голосов
/ 28 января 2019

У меня немного трудные времена для реализации потока аутентификации.

Этот следующий поток работает: со стороны клиента, я делаю перенаправление на сторону серв:

document.location.href = URI.UriSignIn

На стороне сервера я делаю перенаправление на сервер авторизации Google:

const baseURI = "https://accounts.google.com/o/oauth2/v2/auth?";
  const redirect_uri =
    `redirect_uri=http://${process.env.URIBASE}:8081/callBackGoogle`;
  const prompt = "&prompt=consent";
  const reponse_type = "&response_type=code";
  const client_id =
    "&client_id=" + process.env.CLIENT_ID;
  const scope =
    "&scope=https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile";

  res.writeHead(302, {
    'Access-Control-Allow-Origin': '*',
    Location:
      baseURI +
      redirect_uri +
      prompt +
      reponse_type +
      client_id +
      scope
  });

Это работает, но сейчас я пытаюсь добавить «UUID» к перенаправлению со стороны клиента на сторону сервера, чтобы клиент могпозже извлеките его JWT следующим образом:

axios.get(URI.UriSignIn, {
    headers: {
        'token-client': uuid()
    }
})

с той же стороной кода службы, и я получаю следующую ошибку error detail

Я нашел обходной путь, который разделяет перенаправлениев 2 запросах, один для отправки UUID, а другой для перенаправления, но это не самое безопасное (из соображений безопасности)

1 Ответ

0 голосов
/ 28 января 2019

Ответ на заданный вопрос заключается в том, что OP использует ajax / rest вызов URL-адреса, который должен быть целью перенаправления.

Таким образом, в общих чертах, вместо

axios.get (url)

пользователь должен сделать

location.href = url

...