package auth import "net/http" // ---------------------------------------------------------------------------------------------------------------------- type TokenAuth struct { users map[string]TokenUser } type TokenUser struct { User string Group string } func (a *TokenAuth) DoAuth(w http.ResponseWriter, r *http.Request) (*AuthData, int) { token := r.Header.Get("token") user, ok := a.users[token] if !ok { return nil, http.StatusUnauthorized } return &AuthData{ User: user.User, Group: user.Group, }, http.StatusOK } func (a *TokenAuth) AddUser(user string, group string, password string) error { a.users[password] = TokenUser{ User: user, Group: group, } return nil } func (a *TokenAuth) DeleteUser(user string) error { return nil } func NewTokenAuth() *TokenAuth { return &TokenAuth{ users: make(map[string]TokenUser), } }