2
0

session_helpers.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package authn
  2. import (
  3. "net/http"
  4. "github.com/porter-dev/porter/api/server/shared/config"
  5. "github.com/porter-dev/porter/internal/models"
  6. )
  7. func SaveUserAuthenticated(
  8. w http.ResponseWriter,
  9. r *http.Request,
  10. config *config.Config,
  11. user *models.User,
  12. ) (string, error) {
  13. session, err := config.Store.Get(r, config.ServerConf.CookieName)
  14. if err != nil {
  15. return "", err
  16. }
  17. var redirect string
  18. if valR := session.Values["redirect_uri"]; valR != nil {
  19. redirect = session.Values["redirect_uri"].(string)
  20. }
  21. session.Values["authenticated"] = true
  22. session.Values["user_id"] = user.ID
  23. session.Values["email"] = user.Email
  24. // we unset the redirect uri after login
  25. session.Values["redirect_uri"] = ""
  26. return redirect, session.Save(r, w)
  27. }
  28. func SaveUserUnauthenticated(
  29. w http.ResponseWriter,
  30. r *http.Request,
  31. config *config.Config,
  32. ) error {
  33. session, err := config.Store.Get(r, config.ServerConf.CookieName)
  34. if err != nil {
  35. return err
  36. }
  37. session.Values["authenticated"] = false
  38. session.Values["user_id"] = nil
  39. session.Values["email"] = nil
  40. return session.Save(r, w)
  41. }