6
내 레일 앱은 권한 부여를 위해 사용자 자격 증명을 저장하기 위해 세션을 사용합니다. Go 코드의 로그인 및 일부 작업 (사용자 세션이 필요함)을 시도하고 있습니다. 로그인 할 때 사용자 세션을 검색하고 다음 요청으로 전달해야합니까? 어떻게 처리 할 수 있습니까?골란에서 세션 값 가져 오기
내 레일 앱은 권한 부여를 위해 사용자 자격 증명을 저장하기 위해 세션을 사용합니다. Go 코드의 로그인 및 일부 작업 (사용자 세션이 필요함)을 시도하고 있습니다. 로그인 할 때 사용자 세션을 검색하고 다음 요청으로 전달해야합니까? 어떻게 처리 할 수 있습니까?골란에서 세션 값 가져 오기
Go의 표준 라이브러리는 HTTP 세션 관리자를 제공하지 않습니다. 그래서 당신은 당신 자신을 써야하거나, 다른 사람들이 쓴 것을 사용하십시오.
몇 가지 예 : - :
는 일반적으로 세션을 관리하는 HTTP
http.Request
)에서 직접 얻을 수 있습니다. Request.Cookie()
. "요청 체인"을 통해 세션을 "전달"할 필요가 없다고 말하면 모든 처리기는 http.Request
을 가지고 액세스 할 수 있습니다. github.com/icza/session
를 사용하여 예를 들어
가 다음과 같이 수행 할 수 있습니다
func MyHandler(w http.ResponseWriter, r *http.Request) {
sess := session.Get(r)
if sess == nil {
// No session (yet)
} else {
// We have a session, use it
}
}
이 Gorilla sessions를 사용하면, 유사 :
var store = sessions.NewCookieStore([]byte("something-very-secret"))
func MyHandler(w http.ResponseWriter, r *http.Request) {
session, err := store.Get(r, "session-name")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// Use session
}