实现角色接口增删改查
This commit is contained in:
@ -22,11 +22,11 @@ type (
|
||||
//
|
||||
// 字段:
|
||||
// - UserId: 用户 ID;
|
||||
// - Permission: 权限标识;
|
||||
// - Role: 权限标识;
|
||||
// - ExpireTime: token 过期时间(可选)。
|
||||
TokenIn struct {
|
||||
UserId int64 // 用户 ID
|
||||
Permission string // 权限标识
|
||||
Role string // 权限标识
|
||||
ExpireTime time.Duration // 令牌有效期
|
||||
}
|
||||
|
||||
@ -34,19 +34,19 @@ type (
|
||||
//
|
||||
// 字段:
|
||||
// - UserId: 用户 ID;
|
||||
// - Permission: 权限标识;
|
||||
// - Role: 权限标识;
|
||||
// - JTI: JWT 的唯一标识。
|
||||
TokenOut struct {
|
||||
UserId int64 // 用户 ID
|
||||
Permission string // 权限标识
|
||||
JTI string // JWT 唯一标识
|
||||
UserId int64 // 用户 ID
|
||||
Role string // 权限标识
|
||||
JTI string // JWT 唯一标识
|
||||
}
|
||||
|
||||
// jwtClaims 自定义 JWT 的声明体结构,嵌入标准声明字段。
|
||||
jwtClaims struct {
|
||||
UserId int64 `json:"user_id"` // 用户 ID
|
||||
Permission string `json:"permission"` // 权限标识
|
||||
JTI string `json:"jti"` // 唯一标识
|
||||
UserId int64 `json:"user_id"` // 用户 ID
|
||||
Role string `json:"Role"` // 权限标识
|
||||
JTI string `json:"jti"` // 唯一标识
|
||||
jwt.RegisteredClaims
|
||||
}
|
||||
)
|
||||
@ -66,9 +66,9 @@ func GenerateToken(in *TokenIn) (string, error) {
|
||||
}
|
||||
|
||||
claims := jwtClaims{
|
||||
UserId: in.UserId,
|
||||
Permission: in.Permission,
|
||||
JTI: uuid.NewString(),
|
||||
UserId: in.UserId,
|
||||
Role: in.Role,
|
||||
JTI: uuid.NewString(),
|
||||
RegisteredClaims: jwt.RegisteredClaims{
|
||||
ExpiresAt: jwt.NewNumericDate(time.Now().Add(expire)),
|
||||
IssuedAt: jwt.NewNumericDate(time.Now()),
|
||||
@ -108,8 +108,8 @@ func ParseToken(tokenString string) (*TokenOut, error) {
|
||||
}
|
||||
|
||||
return &TokenOut{
|
||||
UserId: claims.UserId,
|
||||
Permission: claims.Permission,
|
||||
JTI: claims.JTI,
|
||||
UserId: claims.UserId,
|
||||
Role: claims.Role,
|
||||
JTI: claims.JTI,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@ -33,8 +33,18 @@ func init() {
|
||||
}
|
||||
|
||||
enforcer.LoadPolicy()
|
||||
// 管理员
|
||||
{
|
||||
// admin
|
||||
enforcer.AddPolicy("admin", "/x/admin/info", "GET", "获取管理员用户信息")
|
||||
|
||||
// role
|
||||
enforcer.AddPolicy("admin", "/x/role", "GET", "管理员获取角色列表")
|
||||
enforcer.AddPolicy("admin", "/x/role", "POST", "管理员添加角色")
|
||||
enforcer.AddPolicy("admin", "/x/role", "PUT", "管理员更新角色")
|
||||
enforcer.AddPolicy("admin", "/x/role", "DELETE", "管理员给角色分配权限")
|
||||
enforcer.AddPolicy("admin", "/x/role/*", "DELETE", "管理员删除单个角色")
|
||||
|
||||
}
|
||||
instance = &myCasbin{Enforcer: enforcer}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user