46 lines
841 B
Go
46 lines
841 B
Go
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, bool) {
|
|
token := r.Header.Get("token")
|
|
|
|
user, ok := a.users[token]
|
|
if !ok {
|
|
return nil, false
|
|
}
|
|
|
|
return &AuthData{
|
|
User: user.User,
|
|
Group: user.Group,
|
|
}, true
|
|
}
|
|
|
|
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),
|
|
}
|
|
}
|