func()

in auth.go [46:73]


func (s *Server) authCallback() http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		user, err := gothic.CompleteUserAuth(w, r)
		if err != nil {
			log.Error().Err(err).Send()
			http.Error(w, err.Error(), http.StatusInternalServerError)
			return
		}

		session, _ := s.sessionStore.New(r, sessionName)
		session.Values["current_user_id"] = user.UserID
		session.Values["current_user_email"] = user.Email

		redirectTo := "//" + s.config.BaseDomain + "/"
		if val, ok := session.Values["redirect_to"]; ok {
			delete(session.Values, "redirect_to")
			redirectTo = val.(string)
		}

		if err = session.Save(r, w); err != nil {
			log.Error().Err(err).Send()
			http.Error(w, err.Error(), http.StatusInternalServerError)
			return
		}

		http.Redirect(w, r, redirectTo, http.StatusFound)
	}
}