data

package
v0.0.29 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2026 License: MIT Imports: 11 Imported by: 6

Documentation

Index

Constants

View Source
const (
	ClaimFieldTenantID       = "tid"
	ClaimFieldTenantCode     = "tcode"
	ClaimFieldUserID         = "uid"
	ClaimFieldUserCode       = "ucode"
	ClaimFieldRoleID         = "rid"
	ClaimFieldRoleName       = "rname"
	ClaimFieldRoleCode       = "rcode"
	ClaimFieldDeptID         = "did"
	ClaimFieldDeptName       = "dname"
	ClaimFieldDataScope      = "ds"
	ClaimFieldTenantProjects = "tprojects"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type TenantProjectScope added in v0.0.29

type TenantProjectScope struct {
	TenantId  int64   `json:"tenant_id"`
	ProjectId []int64 `json:"project_id"`
}

TenantProjectScope 表示用户在一个目标租户下的项目范围,项目 ID 为 0 时表示全部项目。

type TokenSession added in v0.0.28

type TokenSession struct {
	SessionID        string `json:"session_id"`
	AccessToken      string `json:"access_token"`
	RefreshToken     string `json:"refresh_token"`
	AccessExpiresAt  int64  `json:"access_expires_at"`  // 访问令牌到期时间,Unix 纳秒。
	RefreshExpiresAt int64  `json:"refresh_expires_at"` // 刷新令牌到期时间,Unix 纳秒。
}

TokenSession 描述同一用户的一组访问令牌和刷新令牌。

type UserToken

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

UserToken 管理用户访问令牌、刷新令牌和独立登录会话。

func NewUserToken

func NewUserToken(
	cache cache.Cache,
	authenticator engine.IdentityCreator,
	accessTokenKeyPrefix,
	refreshTokenKeyPrefix string,
	accessTokenExpires,
	refreshTokenExpires time.Duration,
) *UserToken

NewUserToken 创建使用指定缓存和签发器的令牌管理器。

func (*UserToken) GenerateAccessToken

func (r *UserToken) GenerateAccessToken(userToken *UserTokenPayload) (accessToken string, err error)

GenerateAccessToken 创建访问令牌

func (*UserToken) GenerateAccessTokenForSession added in v0.0.28

func (r *UserToken) GenerateAccessTokenForSession(userToken *UserTokenPayload, sessionID string) (accessToken string, err error)

GenerateAccessTokenForSession 为指定会话创建访问令牌。

func (*UserToken) GenerateRefreshToken

func (r *UserToken) GenerateRefreshToken(userToken *UserTokenPayload) (refreshToken string, err error)

GenerateRefreshToken 创建刷新令牌

func (*UserToken) GenerateRefreshTokenForSession added in v0.0.28

func (r *UserToken) GenerateRefreshTokenForSession(userToken *UserTokenPayload, sessionID string) (refreshToken string, err error)

GenerateRefreshTokenForSession 为指定会话创建刷新令牌。

func (*UserToken) GenerateToken

func (r *UserToken) GenerateToken(userToken *UserTokenPayload) (accessToken string, refreshToken string, err error)

GenerateToken 创建令牌

func (*UserToken) GenerateTokenForSession added in v0.0.28

func (r *UserToken) GenerateTokenForSession(userToken *UserTokenPayload, sessionID string) (accessToken string, refreshToken string, err error)

GenerateTokenForSession 创建指定会话的访问令牌和刷新令牌。

func (*UserToken) GetAccessToken

func (r *UserToken) GetAccessToken(userId int64) string

GetAccessToken 获取访问令牌

func (*UserToken) GetAccessTokenExpires

func (r *UserToken) GetAccessTokenExpires() int64

GetAccessTokenExpires 获取token 有效期,单位秒

func (*UserToken) GetRefreshToken

func (r *UserToken) GetRefreshToken(userId int64) string

GetRefreshToken 获取刷新令牌

func (*UserToken) GetRefreshTokenExpires

func (r *UserToken) GetRefreshTokenExpires() int64

GetRefreshTokenExpires 获取token 有效期,单位秒

func (*UserToken) GetTokenSessions added in v0.0.28

func (r *UserToken) GetTokenSessions(userId int64) ([]TokenSession, error)

GetTokenSessions 返回用户当前缓存中的会话令牌列表。

func (*UserToken) IsAccessTokenValid added in v0.0.28

func (r *UserToken) IsAccessTokenValid(userId int64, accessToken string) bool

IsAccessTokenValid 校验访问令牌是否属于用户的有效会话。

func (*UserToken) IsExistAccessToken

func (r *UserToken) IsExistAccessToken(userId int64) bool

IsExistAccessToken 访问令牌是否存在

func (*UserToken) IsExistRefreshToken

func (r *UserToken) IsExistRefreshToken(userId int64) bool

IsExistRefreshToken 刷新令牌是否存在

func (*UserToken) IsRefreshTokenValid added in v0.0.28

func (r *UserToken) IsRefreshTokenValid(userId int64, refreshToken string) bool

IsRefreshTokenValid 校验刷新令牌是否属于用户的有效会话。

func (*UserToken) RemoveToken

func (r *UserToken) RemoveToken(userId int64) error

RemoveToken 移除所有令牌

func (*UserToken) RemoveTokenForSession added in v0.0.28

func (r *UserToken) RemoveTokenForSession(userId int64, sessionID, accessToken, refreshToken string) error

RemoveTokenForSession 移除指定会话的访问令牌和刷新令牌。

type UserTokenPayload

type UserTokenPayload struct {
	TenantId   int64
	TenantCode string
	UserId     int64
	UserCode   string
	UserName   string
	RoleId     int64
	RoleCode   string
	RoleName   string
	DeptId     int64
	DeptName   string
	DataScope  int32
	// TenantProjects 保存登录用户按目标租户分组的项目范围。
	TenantProjects []TenantProjectScope
}

UserTokenPayload 用户JWT令牌载荷

func NewUserTokenPayloadWithClaims

func NewUserTokenPayloadWithClaims(claims *engine.AuthClaims) (*UserTokenPayload, error)

func (*UserTokenPayload) ExtractAuthClaims

func (t *UserTokenPayload) ExtractAuthClaims(claims *engine.AuthClaims) error

ExtractAuthClaims 解析认证声明

func (*UserTokenPayload) MakeAuthClaims

func (t *UserTokenPayload) MakeAuthClaims() *engine.AuthClaims

MakeAuthClaims 构建认证声明

Jump to

Keyboard shortcuts

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