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)
}
}