authn

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2026 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ContextKeyUserID 当前认证用户的 ID
	ContextKeyUserID = "user_id"

	// ContextKeyAccountID 当前认证账户的 ID
	ContextKeyAccountID = "account_id"

	// ContextKeyTenantID 当前认证租户的 ID(Casbin domain)
	ContextKeyTenantID = "tenant_id"

	// ContextKeyTokenID 当前使用的 Token ID
	ContextKeyTokenID = "token_id"

	// ContextKeyClaims 当前认证请求的 Claims
	ContextKeyClaims = "claims"
)

Context keys 用于在 Gin Context 中存储认证信息 使用常量可以避免字符串拼写错误,提高代码安全性

View Source
const (
	PlatformAdminRoleSuperAdmin    = "super_admin"
	PlatformAdminRolePlatformAdmin = "platform:admin"
	PlatformAdminRoleIAMAdmin      = "iam:admin"
)
View Source
const SeedMockSecretHeader = "X-IAM-Seed-Secret"

Variables

This section is empty.

Functions

func GetCurrentAccountID

func GetCurrentAccountID(c *gin.Context) (string, bool)

GetCurrentAccountID 从上下文获取当前账户 ID

func GetCurrentSessionID

func GetCurrentSessionID(c *gin.Context) (string, bool)

GetCurrentSessionID 从上下文获取当前会话 ID

func GetCurrentUserID

func GetCurrentUserID(c *gin.Context) (string, bool)

GetCurrentUserID 从上下文获取当前用户 ID

func IsPlatformAdminRole

func IsPlatformAdminRole(role string) bool

IsPlatformAdminRole 判断角色是否属于平台控制面管理员。

func NormalizeRoleName

func NormalizeRoleName(role string) string

NormalizeRoleName 将 Casbin `role:<name>` 规整为前端 / 业务层使用的角色名。

func OptionalAuth

func OptionalAuth(tokenService token.TokenApplicationService) gin.HandlerFunc

OptionalAuth 便捷函数:创建可选认证中间件

func RequireAuth

func RequireAuth(tokenService token.TokenApplicationService) gin.HandlerFunc

RequireAuth 便捷函数:创建认证必需中间件

func RequireSeedMockSecret

func RequireSeedMockSecret(secret string) gin.HandlerFunc

func TenantIDFromGin

func TenantIDFromGin(c *gin.Context) string

TenantIDFromGin 从 gin 上下文解析租户域(Casbin domain),缺省为 tenant.DefaultID。

Types

type CasbinEnforcer

type CasbinEnforcer interface {
	Enforce(ctx context.Context, sub, dom, obj, act string) (bool, error)
	GetRolesForUser(ctx context.Context, user, domain string) ([]string, error)
}

CasbinEnforcer 可选注入的授权判定端口(由 authz Casbin 适配器实现)。 为 nil 时 RequireRole / RequirePermission 返回服务不可用。

type JWTAuthMiddleware

type JWTAuthMiddleware struct {
	// contains filtered or unexported fields
}

JWTAuthMiddleware JWT 认证中间件 使用新的认证模块来验证令牌

func NewJWTAuthMiddleware

func NewJWTAuthMiddleware(tokenService token.TokenApplicationService, casbin CasbinEnforcer) *JWTAuthMiddleware

NewJWTAuthMiddleware 创建 JWT 认证中间件。 casbin 可为 nil(仅 JWT 校验,不做角色/权限判定)。

func (*JWTAuthMiddleware) AuthOptional

func (m *JWTAuthMiddleware) AuthOptional() gin.HandlerFunc

AuthOptional 可选认证中间件 如果有令牌则验证,没有令牌也允许通过(但不设置用户信息)

func (*JWTAuthMiddleware) AuthRequired

func (m *JWTAuthMiddleware) AuthRequired() gin.HandlerFunc

AuthRequired 认证必需中间件 验证请求中的 JWT 令牌,如果无效则返回 401

func (*JWTAuthMiddleware) RequirePermission

func (m *JWTAuthMiddleware) RequirePermission(resourceObj, action string) gin.HandlerFunc

RequirePermission 对资源键与动作执行 Casbin Enforce(与 PDP 一致)。 必须在 AuthRequired 之后使用。

func (*JWTAuthMiddleware) RequirePlatformAdmin

func (m *JWTAuthMiddleware) RequirePlatformAdmin() gin.HandlerFunc

RequirePlatformAdmin 要求用户在当前 domain 或 platform domain 中具备平台管理员角色。 必须在 AuthRequired 之后使用。

func (*JWTAuthMiddleware) RequireRole

func (m *JWTAuthMiddleware) RequireRole(roleNames ...string) gin.HandlerFunc

RequireRole 要求用户拥有任一角色名(与 Casbin `role:<name>` 对齐,入参传 name 即可)。 必须在 AuthRequired 之后使用。

func (*JWTAuthMiddleware) SupportsRoleCheck

func (m *JWTAuthMiddleware) SupportsRoleCheck() bool

SupportsRoleCheck 返回当前中间件是否具备角色判定能力。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL