Initial commit
This commit is contained in:
46
store/memory.go
Normal file
46
store/memory.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package store
|
||||
|
||||
type MemoryAuthStore struct {
|
||||
Tokens map[string]RevokableToken
|
||||
}
|
||||
|
||||
func NewMemoryAuthStore() *MemoryAuthStore {
|
||||
return &MemoryAuthStore{Tokens: map[string]RevokableToken{}}
|
||||
}
|
||||
|
||||
func (s *MemoryAuthStore) Revoke(id string) error {
|
||||
if t, ok := s.Tokens[id]; ok {
|
||||
t.Revoked = true
|
||||
s.Tokens[id] = t
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MemoryAuthStore) IsRevoked(id string) bool {
|
||||
if t, ok := s.Tokens[id]; ok {
|
||||
return t.Revoked
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func (s *MemoryAuthStore) Add(token RevokableToken) error {
|
||||
s.Tokens[token.ID] = token
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MemoryAuthStore) Remove(id string) error {
|
||||
delete(s.Tokens, id)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MemoryAuthStore) RevokeUser(subject string) error {
|
||||
for id, token := range s.Tokens {
|
||||
if token.Subject == subject {
|
||||
token.Revoked = true
|
||||
s.Tokens[id] = token
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
18
store/store.go
Normal file
18
store/store.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package store
|
||||
|
||||
import "time"
|
||||
|
||||
type RevokableToken struct {
|
||||
ID string
|
||||
Subject string
|
||||
ExpiresAt time.Time
|
||||
Revoked bool
|
||||
}
|
||||
|
||||
type AuthStore interface {
|
||||
Add(token RevokableToken) error
|
||||
Remove(id string) error
|
||||
Revoke(id string) error
|
||||
RevokeUser(subject string) error
|
||||
IsRevoked(id string) bool
|
||||
}
|
Reference in New Issue
Block a user