Eureka

Tech, or not

golang: net/httpでBASIC認証

2017-05-02



golangでベーシック認証するのはどうしたら良いのかなー。って思ってたら、net/http でhandlerに渡されるhttp.RequestBasicAuth() というメソッドが生えてました。
これはBASIC認証用のユーザ名、パスワード、ヘッダ解析のフラグという値を返してくれます。
なので、


func handler(w http.ResponseWriter, r *http.Request) {
username, password, ok := r.BasicAuth()
if !ok {
return
}
if username == "hogehogeuser" && password == "fugafugapasswd" {
// something
}
}

とすることで認証することができます。簡単、簡単。
なお残念ながらダイジェスト認証はサポートされていない様子。