snap/auth/token.go

46 lines
868 B
Go
Raw Permalink Normal View History

package auth
import "net/http"
2023-05-23 14:09:57 +00:00
// ----------------------------------------------------------------------------------------------------------------------
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),
}
}