add token service, sqlite driver and test
This commit is contained in:
30
internal/token/service.go
Normal file
30
internal/token/service.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package token
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
type TokenStore interface {
|
||||
revoke(tokenID string, expiresAt time.Time) error
|
||||
isRevoked(tokenID string) (bool, error)
|
||||
}
|
||||
|
||||
type TokenService struct {
|
||||
store TokenStore
|
||||
}
|
||||
|
||||
func NewTokenService(store TokenStore) (*TokenService, error) {
|
||||
if store == nil {
|
||||
return nil, fmt.Errorf("store is nil")
|
||||
}
|
||||
return &TokenService{store: store}, nil
|
||||
}
|
||||
|
||||
func (s *TokenService) Revoke(jti string, exp time.Time) error {
|
||||
return s.store.revoke(jti, exp)
|
||||
}
|
||||
|
||||
func (s *TokenService) IsRevoked(jti string) (bool, error) {
|
||||
return s.store.isRevoked(jti)
|
||||
}
|
||||
Reference in New Issue
Block a user