token.go 841 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package auth
  2. import "net/http"
  3. //----------------------------------------------------------------------------------------------------------------------
  4. type TokenAuth struct {
  5. users map[string]TokenUser
  6. }
  7. type TokenUser struct {
  8. User string
  9. Group string
  10. }
  11. func (a *TokenAuth) DoAuth(w http.ResponseWriter, r *http.Request) (*AuthData, bool) {
  12. token := r.Header.Get("token")
  13. user, ok := a.users[token]
  14. if !ok {
  15. return nil, false
  16. }
  17. return &AuthData{
  18. User: user.User,
  19. Group: user.Group,
  20. }, true
  21. }
  22. func (a *TokenAuth) AddUser(user string, group string, password string) error {
  23. a.users[password] = TokenUser{
  24. User: user,
  25. Group: group,
  26. }
  27. return nil
  28. }
  29. func (a *TokenAuth) DeleteUser(user string) error {
  30. return nil
  31. }
  32. func NewTokenAuth() *TokenAuth {
  33. return &TokenAuth{
  34. users: make(map[string]TokenUser),
  35. }
  36. }