golangでベーシック認証するのはどうしたら良いのかなー。って思ってたら、net/http
でhandlerに渡されるhttp.Request
にBasicAuth()
というメソッドが生えてました。
これはBASIC認証用のユーザ名、パスワード、ヘッダ解析のフラグという値を返してくれます。
なので、
func handler(w http.ResponseWriter, r *http.Request) {
username, password, ok := r.BasicAuth()
if !ok {
return
}
if username == "hogehogeuser" && password == "fugafugapasswd" {
// something
}
}
とすることで認証することができます。簡単、簡単。 なお残念ながらダイジェスト認証はサポートされていない様子。