JWT鉴权中间件
使用JWT中间件
example
package main
import (
"flag"
"net/http"
"github.com/zeromicro/go-zero/core/conf"
"github.com/zeromicro/go-zero/example/graceful/etcd/api/config"
"github.com/zeromicro/go-zero/rest"
)
var configFile = flag.String("f", "etc/graceful-api.json", "the config file")
func main() {
flag.Parse()
var c config.Config
conf.MustLoad(*configFile, &c)
engine := rest.MustNewServer(c.RestConf)
defer engine.Stop()
engine.AddRoute(rest.Route{
Method: http.MethodGet,
Path: "/",
Handler: func(writer http.ResponseWriter, request *http.Request) {
//do something
},
},rest.WithJwt("your secret")) //Change to your own jwt secret
engine.Start()
}
add prevSecret
engine.AddRoute(rest.Route{
Method: http.MethodGet,
Path: "/",
Handler: func(writer http.ResponseWriter, request *http.Request) {
//do something
},
},rest.WithJwtTransition("your secret","your prevSecret")) //Change to your own jwt secret and prevSecret
自定义鉴权失败回调函数
engine := rest.MustNewServer(c.RestConf,rest.WithUnauthorizedCallback(func(w http.ResponseWriter, r *http.Request, err error) {
// your custom callback function
}))