JWT鉴权
快速开始
package main
import (
"fmt"
"net/http"
"github.com/sagoo-cloud/nexframe/auth"
"github.com/gorilla/mux"
)
func main() {
// 创建JWT中间件实例
jwtMiddleware, err := auth.NewJwt()
if err != nil {
panic(err)
}
// 创建路由
r := mux.NewRouter()
// 应用JWT中间件到受保护的路由
r.Handle("/protected", jwtMiddleware.Middleware(http.HandlerFunc(protectedHandler))).Methods("GET")
// 启动服务器
http.ListenAndServe(":8080", r)
}
func protectedHandler(w http.ResponseWriter, r *http.Request) {
username, err := auth.GetCurrentUser(r.Context())
if err != nil {
http.Error(w, "未授权", http.StatusUnauthorized)
return
}
fmt.Fprintf(w, "欢迎, %s!", username)
}配置
主要功能
创建中间件实例
生成令牌对
验证令牌
刷新令牌
从上下文获取用户信息
高级用法
自定义错误处理
自定义令牌提取方法
最佳实践
完整示例
常见问题解答
最后更新于