helpers.go 973 B

1234567891011121314151617181920212223242526272829303132
  1. // Package handlers содержит HTTP-обработчики API-сервера Photoplaces.
  2. // Реализованы хендлеры: Auth, User, Place, Booking, Review, Service, Tag,
  3. // Upload (S3 presigned URLs) и WebSocket (посетители на карте).
  4. // Используется валидация через validator и middleware для авторизации/ролей.
  5. package handlers
  6. import (
  7. "net/http"
  8. "time"
  9. )
  10. const refreshTokenCookieName = "refresh_token"
  11. func setRefreshTokenCookie(w http.ResponseWriter, token string, isProd bool) {
  12. http.SetCookie(w, &http.Cookie{
  13. Name: refreshTokenCookieName,
  14. Value: token,
  15. Path: "/",
  16. HttpOnly: true,
  17. Secure: isProd,
  18. SameSite: http.SameSiteLaxMode,
  19. MaxAge: int((30 * 24 * time.Hour).Seconds()),
  20. })
  21. }
  22. func getRefreshTokenFromCookie(r *http.Request) string {
  23. cookie, err := r.Cookie(refreshTokenCookieName)
  24. if err != nil {
  25. return ""
  26. }
  27. return cookie.Value
  28. }