27 lines
676 B
Go
27 lines
676 B
Go
package token
|
|
|
|
// TokenPair contains the access and refresh tokens
|
|
type TokenPair struct {
|
|
AccessToken string
|
|
RefreshToken string
|
|
AccessUUID string
|
|
RefreshUUID string
|
|
AtExpires int64
|
|
RtExpires int64
|
|
}
|
|
|
|
// Claims defines the JWT claims (User)
|
|
type Claims struct {
|
|
UserID string `json:"user_id"`
|
|
Email string `json:"email"`
|
|
Role string `json:"role"`
|
|
TokenID string `json:"token_id"`
|
|
}
|
|
|
|
// Provider defines the interface for token operations
|
|
type Provider interface {
|
|
GenerateTokenPair(userID, email, role string) (*TokenPair, error)
|
|
ParseToken(tokenString string) (*Claims, error)
|
|
ParseMapToken(tokenString string) (map[string]interface{}, error)
|
|
}
|