// LoginRequired verifies that the current user is authenticated. Any routes that // require a login should have this handler placed in the flow. If the user is not // authenticated, they will be redirected to /login with the "next" get parameter // set to the attempted URL. func LoginRequired(s sessions.Session, r render.Render, user IUser, req *http.Request) { if user.IsAuthenticated() == false { s.Delete(SessionKey) path := fmt.Sprintf("%s?%s=%s", RedirectUrl, RedirectParam, req.URL.Path) r.Redirect(path, 302) } }
func logoutHandle(f *Config, c martini.Context, s sessions.Session, w http.ResponseWriter, r *http.Request) { s.Delete(keyToken) path := fmt.Sprintf("%s?client_id=%s&client_secret=%s", f.Endpoint.LogoutURL, f.ClientID, f.ClientSecret) utils.HttpGetString(path) // fmt.Println("oauth logout result:",string(str)) f.ClientID = "" f.ClientSecret = "" c.Invoke(Logout) http.Redirect(w, r, "/", 302) }
// Logout will clear out the session and call the Logout() user function. func Logout(s sessions.Session, user IUser) { user.Logout() s.Delete(SessionKey) }