| package auth | |
| var ( | |
| _ Validator = (*Token)(nil) | |
| _ Validator = (*TokenStore)(nil) | |
| ) | |
| type Token string | |
| func (token Token) Valid(t string) bool { | |
| return string(token) == t | |
| } | |
| type TokenStore map[string]struct{} | |
| func NewTokenStore(tokens ...string) TokenStore { | |
| store := make(TokenStore) | |
| store.Add(tokens...) | |
| return store | |
| } | |
| func (store TokenStore) Add(tokens ...string) { | |
| for _, token := range tokens { | |
| store[token] = struct{}{} | |
| } | |
| } | |
| func (store TokenStore) Del(token string) { | |
| delete(store, token) | |
| } | |
| func (store TokenStore) Valid(token string) (ok bool) { | |
| _, ok = store[token] | |
| return | |
| } | |