You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
537 B

  1. package Auth
  2. import (
  3. "net/http"
  4. "time"
  5. )
  6. func Logout(w http.ResponseWriter, r *http.Request) {
  7. var (
  8. c *http.Cookie
  9. sessionToken string
  10. err error
  11. )
  12. c, err = r.Cookie("session_token")
  13. if err != nil {
  14. if err == http.ErrNoCookie {
  15. w.WriteHeader(http.StatusUnauthorized)
  16. return
  17. }
  18. w.WriteHeader(http.StatusBadRequest)
  19. return
  20. }
  21. sessionToken = c.Value
  22. delete(Sessions, sessionToken)
  23. http.SetCookie(w, &http.Cookie{
  24. Name: "session_token",
  25. Value: "",
  26. Expires: time.Now(),
  27. })
  28. }