0
我试图在Go中使用Auth0和Martini。我正在使用他们的examples,但我似乎无法让它工作,不管我尝试什么。在Go Martini中的Auth0
这里是我的代码:
package main
import (
"flag"
"github.com/go-martini/martini"
"github.com/martini-contrib/render"
"github.com/auth0/go-jwt-middleware"
"encoding/base64"
"github.com/dgrijalva/jwt-go"
"net/http"
)
func main() {
m := martini.Classic()
port := flag.String("port", "8000", "HTTP Port")
flag.Parse()
jwtMiddleware := jwtmiddleware.New(jwtmiddleware.Options{
ValidationKeyGetter: func(token *jwt.Token) (interface{}, error) {
decoded, err := base64.URLEncoding.DecodeString("<token>")
if err != nil {
return nil, err
}
return decoded, nil
},
})
m.Use(render.Renderer(render.Options{
IndentJSON: true, // Output human readable JSON
}))
m.Get("/", jwtMiddleware.Handler, func(res http.ResponseWriter, req *http.Request) { // res and req are injected by Martini
res.WriteHeader(200) // HTTP 200
})
// Get the PORT from the environment.
m.RunOnAddr(":" + *port)
}
当我运行的是,我得到了恐慌,说Value not found for type http.Handler
如果我改变jwtMiddleware.Handler
到jwtMiddleware.HandlerWithNext
,我得到Value not found for type http.HandlerFunc
恐慌。
有没有人有任何想法我做错了什么?
工程就像一个魅力。另外,我做了一个双倍考虑,想知道我是否错过了马丁尼的例子,但后来发现你刚刚添加了它。谢谢!! –
哈哈哈是的:)。为你添加它;)。 – mgonto
由于不会调用“SecuredPingHandler”,因此这似乎不再有效。我甚至使用'os.Exit'来代替'SecuredPingHandler',只是为了看看代码是否得到了这么多,它从来没有..我只是得到'[martini] Completed 200 OK'并且应用程序保持运行 –