handlers.go 835 B

1234567891011121314151617181920212223242526272829303132333435
  1. package csrf
  2. import (
  3. "encoding/json"
  4. "net/http"
  5. "imuslab.com/arozos/mod/utils"
  6. )
  7. func (m *TokenManager) HandleNewToken(w http.ResponseWriter, r *http.Request) {
  8. userinfo, err := m.UserHandler.GetUserInfoFromRequest(w, r)
  9. if err != nil {
  10. http.Error(w, "Unauthorized", 401)
  11. return
  12. }
  13. newUUID := m.GenerateNewToken(userinfo.Username)
  14. js, _ := json.Marshal(newUUID)
  15. utils.SendJSONResponse(w, string(js))
  16. }
  17. //validate the token validation from request
  18. func (m *TokenManager) HandleTokenValidation(w http.ResponseWriter, r *http.Request) bool {
  19. userinfo, err := m.UserHandler.GetUserInfoFromRequest(w, r)
  20. if err != nil {
  21. return false
  22. }
  23. token, _ := utils.Mv(r, "csrft", true)
  24. if token == "" {
  25. return false
  26. } else {
  27. return m.CheckTokenValidation(userinfo.Username, token)
  28. }
  29. }