Перенаправление ответа на другой домен с поваром ie в golang - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь установить повара ie в одном домене и отправить его в другой домен.

Архитектура:

API-Gateway -> User service

When a login request receives to Gateway, it forwards it to User service.

User service does credential checking, if it matches, then redirect it to gateway.

    expiration := time.Now().Add(24 * time.Hour)
    cookie    := http.Cookie{Name: "usercookie",Value:jwtToken,Expires:expiration,Path:"/"}
    http.SetCookie(res, &cookie)

    redirectURL := "http://localhost:7070/home?usercookie=" + url.QueryEscape(cookie)

    http.Redirect(res, req, redirectURL , http.StatusFound)

Я получаю

не может использовать cook ie (введите http.Cook ie) в качестве строки типа в аргументе url.QueryEscape

Как мне решить эту проблему? Мои системы работают как микро-сервисы, так как я могу решить эту проблему?

Есть ли другие варианты использования файлов cookie в доменах?

Редактировать:

Когда я использую просто http.Cookie(), а затем перенаправить поток из пользовательской службы.

// User service
    expiration := time.Now().Add(24 * time.Hour)
    cookie    := http.Cookie{Name: "usercookie",Value:jwtToken,Expires:expiration}
    http.SetCookie(res, &cookie)

    http.Redirect(res, req, "http://localhost:7070/home" , http.StatusFound)
// Gateway home controler
func home(res http.ResponseWriter,req *http.Request){
    cookie,cookieError:= req.Cookie("usercookie") 

    if cookieError != nil{
        log.Println("There is an error in cookie : ",cookieError)
    }

    log.Println("User cookie is : ",cookie.Name)

}

Вывод:

Произошла ошибка в cook ie: http: named cook ie нет

Как отправить повара ie или заголовок через http.Redirect

HTTP Redirect (302) Не работает t Используйте Cook ie в следующем запросе GET

...