Go에서 인증 방법은 다음과 같습니다. 기본 인증: 사용자 이름과 비밀번호를 사용합니다. 확인 코드는 기사에 표시됩니다. Bearer Token 인증: 토큰을 자격 증명으로 사용합니다. 확인 코드는 기사에 표시됩니다. OAuth 2.0 인증: 인증 프로토콜, 확인 코드가 기사에 표시됩니다. 실제 예: 모든 경로에 대해 기본 인증을 활성화하는 코드가 기사에 제공됩니다.
Go에서 인증을 위해 HTTP를 사용하는 것은 애플리케이션을 보호하고 사용자를 인증하는 데 중요합니다. 다음은 실제 사례를 포함하여 Go의 몇 가지 일반적인 인증 방법에 대한 가이드입니다.
기본 인증은 사용자 이름과 비밀번호를 사용하여 인증하는 가장 간단한 인증 방법입니다.
func BasicAuth(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { username, password, ok := r.BasicAuth() if !ok || username != "user" || password != "password" { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } next.ServeHTTP(w, r) }) }
Bearer 토큰 인증은 토큰을 자격 증명으로 사용합니다.
func BearerAuth(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { token := r.Header.Get("Authorization") if token != "Bearer my-token" { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } next.ServeHTTP(w, r) }) }
OAuth 2.0은 사용자가 타사 애플리케이션에 데이터 액세스 권한을 부여할 수 있도록 하는 널리 사용되는 인증 프로토콜입니다.
func OAuth2Auth(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { token := r.URL.Query().Get("access_token") if token != "my-access-token" { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } next.ServeHTTP(w, r) }) }
HTTP 라우터가 있고 모든 경로에 대해 기본 인증을 활성화한다고 가정해 보겠습니다.
import ( "log" "net/http" "github.com/gorilla/mux" ) func main() { router := mux.NewRouter() router.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, authenticated user!")) }) // Use BasicAuth middleware to protect all routes loggedRouter := BasicAuth(router) log.Fatal(http.ListenAndServe(":8080", loggedRouter)) }
이제 누군가가 루트 경로(http://localhost:8080/
)에 액세스하려고 시도할 때마다 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. 그렇지 않은 경우 401 Unauthorized 응답을 받게 됩니다.
위 내용은 Golang에서 인증을 위해 HTTP를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!