Documentation
¶
Index ¶
- Constants
- type TenantProjectScope
- type TokenSession
- type UserToken
- func (r *UserToken) GenerateAccessToken(userToken *UserTokenPayload) (accessToken string, err error)
- func (r *UserToken) GenerateAccessTokenForSession(userToken *UserTokenPayload, sessionID string) (accessToken string, err error)
- func (r *UserToken) GenerateRefreshToken(userToken *UserTokenPayload) (refreshToken string, err error)
- func (r *UserToken) GenerateRefreshTokenForSession(userToken *UserTokenPayload, sessionID string) (refreshToken string, err error)
- func (r *UserToken) GenerateToken(userToken *UserTokenPayload) (accessToken string, refreshToken string, err error)
- func (r *UserToken) GenerateTokenForSession(userToken *UserTokenPayload, sessionID string) (accessToken string, refreshToken string, err error)
- func (r *UserToken) GetAccessToken(userId int64) string
- func (r *UserToken) GetAccessTokenExpires() int64
- func (r *UserToken) GetRefreshToken(userId int64) string
- func (r *UserToken) GetRefreshTokenExpires() int64
- func (r *UserToken) GetTokenSessions(userId int64) ([]TokenSession, error)
- func (r *UserToken) IsAccessTokenValid(userId int64, accessToken string) bool
- func (r *UserToken) IsExistAccessToken(userId int64) bool
- func (r *UserToken) IsExistRefreshToken(userId int64) bool
- func (r *UserToken) IsRefreshTokenValid(userId int64, refreshToken string) bool
- func (r *UserToken) RemoveToken(userId int64) error
- func (r *UserToken) RemoveTokenForSession(userId int64, sessionID, accessToken, refreshToken string) error
- type UserTokenPayload
Constants ¶
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 ¶
GetAccessToken 获取访问令牌
func (*UserToken) GetAccessTokenExpires ¶
GetAccessTokenExpires 获取token 有效期,单位秒
func (*UserToken) GetRefreshToken ¶
GetRefreshToken 获取刷新令牌
func (*UserToken) GetRefreshTokenExpires ¶
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
IsAccessTokenValid 校验访问令牌是否属于用户的有效会话。
func (*UserToken) IsExistAccessToken ¶
IsExistAccessToken 访问令牌是否存在
func (*UserToken) IsExistRefreshToken ¶
IsExistRefreshToken 刷新令牌是否存在
func (*UserToken) IsRefreshTokenValid ¶ added in v0.0.28
IsRefreshTokenValid 校验刷新令牌是否属于用户的有效会话。
func (*UserToken) RemoveToken ¶
RemoveToken 移除所有令牌
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 构建认证声明