mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
package models
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"errors"
 | 
						|
)
 | 
						|
 | 
						|
// Typed errors
 | 
						|
var (
 | 
						|
	ErrUserTokenNotFound = errors.New("user token not found")
 | 
						|
)
 | 
						|
 | 
						|
// UserToken represents a user token
 | 
						|
type UserToken struct {
 | 
						|
	Id            int64
 | 
						|
	UserId        int64
 | 
						|
	AuthToken     string
 | 
						|
	PrevAuthToken string
 | 
						|
	UserAgent     string
 | 
						|
	ClientIp      string
 | 
						|
	AuthTokenSeen bool
 | 
						|
	SeenAt        int64
 | 
						|
	RotatedAt     int64
 | 
						|
	CreatedAt     int64
 | 
						|
	UpdatedAt     int64
 | 
						|
	UnhashedToken string
 | 
						|
}
 | 
						|
 | 
						|
type RevokeAuthTokenCmd struct {
 | 
						|
	AuthTokenId int64 `json:"authTokenId"`
 | 
						|
}
 | 
						|
 | 
						|
// UserTokenService are used for generating and validating user tokens
 | 
						|
type UserTokenService interface {
 | 
						|
	CreateToken(ctx context.Context, userId int64, clientIP, userAgent string) (*UserToken, error)
 | 
						|
	LookupToken(ctx context.Context, unhashedToken string) (*UserToken, error)
 | 
						|
	TryRotateToken(ctx context.Context, token *UserToken, clientIP, userAgent string) (bool, error)
 | 
						|
	RevokeToken(ctx context.Context, token *UserToken) error
 | 
						|
	RevokeAllUserTokens(ctx context.Context, userId int64) error
 | 
						|
	ActiveTokenCount(ctx context.Context) (int64, error)
 | 
						|
	GetUserToken(ctx context.Context, userId, userTokenId int64) (*UserToken, error)
 | 
						|
	GetUserTokens(ctx context.Context, userId int64) ([]*UserToken, error)
 | 
						|
}
 |