这里只介绍我们如何使用该中间件,具体内容请点击基于go-zero实现JWT认证

example

package main

import (
    "flag"
    "net/http"

    "github.com/tal-tech/go-zero/core/conf"
    "github.com/tal-tech/go-zero/example/graceful/etcd/api/config"
    "github.com/tal-tech/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
}))