访问基本身份验证凭据

时间:2015-05-19 13:48:28

标签: go basic-authentication go-alice

我正在使用GoLang处理API。对此API的所有调用都将包含public_key(用户名),其中一些调用还将在Authorization标头中包含private_key(密码)。

我试图弄清楚如何访问Auth标头详细信息,以便我可以针对数据库检查凭据。

我使用Julien Schmidt的路由器和Alice链接中间件。到目前为止我的设置是:

func main() {
    session, err := mgo.Dial("conn-string")
    if err != nil {
        panic(err)
    }
    defer session.Close()
    session.SetMode(mgo.Monotonic, true)

    c := appContext{session.DB("db-name")}
    commonHandlers := alice.New(context.ClearHandler)
    router := NewRouter()
    router.Get("/", commonHandlers.Append(basicAuthHandler).ThenFunc(c.mainHandler))

    http.ListenAndServe(":5000", router)
}

但我不确定如何继续使用下面的basicAuthHandler功能。如果public_key存在,我需要检查它是否有效。如果包含private_key,则func basicAuthHandler(next http.Handler) http.Handler { fn := func(w http.ResponseWriter, r *http.Request) { } return http.HandlerFunc(fn) } 也是如此。

aws s3 cp <file-to-upload> s3://<bucket>/ --acl authenticated-read

1 个答案:

答案 0 :(得分:2)

尝试在请求上运行函数BasicAuth

user, password, ok := r.BasicAuth()
if !ok {
  // could not get basic authentication credentials
}