rbac
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -32,7 +33,7 @@ func AdminAuth(jwtSecret string) gin.HandlerFunc {
|
||||
}
|
||||
}
|
||||
|
||||
// AdminID 从 gin.Context 取出已认证的后台管理员 ID。
|
||||
// AdminID 从 gin.Context 取出已认证的后台管理员 ID(字符串形式,与 JWT 载荷一致)。
|
||||
func AdminID(c *gin.Context) string {
|
||||
if v, ok := c.Get(adminIDCtxKey); ok {
|
||||
if s, ok := v.(string); ok {
|
||||
@@ -41,3 +42,17 @@ func AdminID(c *gin.Context) string {
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// AdminIDUint 从 gin.Context 取出已认证的后台管理员 ID 并解析为 uint64。
|
||||
// 解析失败返回 (0, false),调用方应按“未认证”处理。
|
||||
func AdminIDUint(c *gin.Context) (uint64, bool) {
|
||||
s := AdminID(c)
|
||||
if s == "" {
|
||||
return 0, false
|
||||
}
|
||||
id, err := strconv.ParseUint(s, 10, 64)
|
||||
if err != nil {
|
||||
return 0, false
|
||||
}
|
||||
return id, true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user