gpt4 book ai didi

go - Go Martini 中的 Auth0

转载 作者:数据小太阳 更新时间:2023-10-29 03:07:00 24 4
gpt4 key购买 nike

我正在尝试在 Go 中将 Auth0 与 Martini 一起使用。我正在使用他们的 examples但无论我尝试什么,我似乎都无法让它工作。

这是我的代码:

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)

}

当我运行它时,我得到一个 panic,提示 Value not found for type http.Handler

如果我将 jwtMiddleware.Handler 更改为 jwtMiddleware.HandlerWithNext,我会因为 Value not found for type http.HandlerFunc 而感到 panic 。

有人知道我做错了什么吗?

最佳答案

要将 jwt-middleware 与 Martini 一起使用,您只需使用 CheckJWT 方法而不是 Handler 方法。

检查这个例子:https://github.com/auth0/go-jwt-middleware/blob/master/examples/martini-example/main.go#L27

如果这有帮助,请告诉我。

干杯!

关于go - Go Martini 中的 Auth0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30201084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com