Exemple #1
0
// LogoutHandler returns a web handler function that deletes the user's
// sessions.
func LogoutHandler(localdb db.LocalDB, auth evesso.Authenticator, sess server.Sessionizer) web.HandlerFunc {
	successMsg := []byte("{ \"success\": true }")
	return func(c web.C, w http.ResponseWriter, r *http.Request) {
		s := sess.GetSession(&c, w, r)
		err := localdb.LogoutSession(s.Cookie)
		if err != nil {
			http.Error(w, "Unable to find session", http.StatusTeapot)
			log.Printf("Error logging out: %v", err)
			return
		}
		// Serve some JSON that confirms success.
		w.Write(successMsg)
	}
}