github.com/jxgolibs/go-oauth2-server@v1.0.1/web/logout.go (about) 1 package web 2 3 import ( 4 "net/http" 5 ) 6 7 func (s *Service) logout(w http.ResponseWriter, r *http.Request) { 8 // Get the session service from the request context 9 sessionService, err := getSessionService(r) 10 if err != nil { 11 http.Error(w, err.Error(), http.StatusInternalServerError) 12 return 13 } 14 15 // Get the user session 16 userSession, err := sessionService.GetUserSession() 17 if err != nil { 18 http.Error(w, err.Error(), http.StatusInternalServerError) 19 return 20 } 21 22 // Delete the access and refresh tokens 23 s.oauthService.ClearUserTokens(userSession) 24 25 // Delete the user session 26 sessionService.ClearUserSession() 27 28 // Redirect back to the login page 29 redirectWithQueryString("/web/login", r.URL.Query(), w, r) 30 }