golang: net/httpでBASIC認証

golang: net/httpでBASIC認証

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
    }
}

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

Subscribe to