跳到主要内容

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