|
|
@@ -0,0 +1,27 @@
|
|
|
+package middlewares
|
|
|
+
|
|
|
+import (
|
|
|
+ "github.com/gin-gonic/gin"
|
|
|
+ "github.com/runningwater/gohub/pkg/jwt"
|
|
|
+ "github.com/runningwater/gohub/pkg/response"
|
|
|
+)
|
|
|
+
|
|
|
+// GuestJWT 强制使用游客身份认证中间件
|
|
|
+func GuestJWT() gin.HandlerFunc {
|
|
|
+ return func(c *gin.Context) {
|
|
|
+ // 检查请求头中是否包含 Authorization 字段
|
|
|
+ authHeader := c.GetHeader("Authorization")
|
|
|
+ if len(authHeader) > 0 {
|
|
|
+ // 如果存在 Authorization 字段,验证 JWT
|
|
|
+ _, err := jwt.NewJWT().ParseToken(c)
|
|
|
+ if err == nil {
|
|
|
+ // 如果 JWT 验证通过,返回 403 错误
|
|
|
+ response.Unauthorized(c, "请使用游客身份认证")
|
|
|
+ c.Abort()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 调用下一个中间件或处理函数
|
|
|
+ c.Next()
|
|
|
+ }
|
|
|
+}
|