2018-03-24 16:12:02 +00:00
|
|
|
package auth
|
|
|
|
|
|
|
|
import "net/http"
|
|
|
|
|
2023-05-23 14:09:57 +00:00
|
|
|
// ----------------------------------------------------------------------------------------------------------------------
|
2018-03-24 16:12:02 +00:00
|
|
|
type TokenAuth struct {
|
|
|
|
users map[string]TokenUser
|
|
|
|
}
|
|
|
|
|
|
|
|
type TokenUser struct {
|
|
|
|
User string
|
|
|
|
Group string
|
|
|
|
}
|
|
|
|
|
2023-05-28 16:34:12 +00:00
|
|
|
func (a *TokenAuth) DoAuth(w http.ResponseWriter, r *http.Request) (*AuthData, int) {
|
2018-03-24 16:12:02 +00:00
|
|
|
token := r.Header.Get("token")
|
|
|
|
|
|
|
|
user, ok := a.users[token]
|
|
|
|
if !ok {
|
2023-05-28 16:34:12 +00:00
|
|
|
return nil, http.StatusUnauthorized
|
2018-03-24 16:12:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return &AuthData{
|
|
|
|
User: user.User,
|
|
|
|
Group: user.Group,
|
2023-05-28 16:34:12 +00:00
|
|
|
}, http.StatusOK
|
2018-03-24 16:12:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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),
|
|
|
|
}
|
|
|
|
}
|