Почему я не получаю куки на клиенте, когда сервер их устанавливает? JavaScript и Golang - PullRequest
0 голосов
/ 17 апреля 2020

Я использую API fetch для отправки запроса в мой сервис golang, который выдает jwt. Служба устанавливает повара ie со значением jwt. Я вижу, что этот повар ie устанавливается при использовании Postman, но в моем приложении для внешнего интерфейса этот повар ie не устанавливается.

Некоторые другие вещи, которые могут быть связаны с проблемой:
Я используя в качестве браузера последнюю версию Google Crome
Мой веб-интерфейс построен с использованием React
Мой веб-интерфейс и сервер работают под управлением localhost

Почему не установлен токен Cook ie? 1008 *

JavaScript запрос на выборку

const getToken = (googleTokenId: string) => {
  fetch("http://localhost:8085/token/issue-token", {
    method: "POST",
    body: JSON.stringify({googleTokenId}),
    credentials: "same-origin",
    headers: {
      Accept: 'application/json'
    }
  }).then(response => {
    console.log(response)
  })
}

Golang обработчик

func IssueToken(write http.ResponseWriter, request *http.Request) {
  // CORS
  if request.Method == http.MethodOptions {
    Preflight(write)
    return
  }
  write.Header().Set("Access-Control-Allow-Origin", "http://localhost:3000")

  // ...
  // some unrelated code
  // ...

  // Generate and encrypt token
  tokenString, err := GenerateToken(authCredentials)
  if err != nil {
    log.Println(err)
    write.WriteHeader(http.StatusInternalServerError)
    return
  }
  tokenEncryptedByte, err := Encrypt([]byte(tokenString), encryptionKey)
  if err != nil {
    log.Println(err)
    write.WriteHeader(http.StatusInternalServerError)
    return
  }

  // Issue token for user
  expirationTime := time.Now().Add(5 * time.Minute)
  http.SetCookie(write, &http.Cookie{
    Name:    "token",
    Value:   Encode64(tokenEncryptedByte),
    Expires: expirationTime,
  })
  log.Println("Success: Token was sent")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...