func main() { googleRedirect := "http://yourrealwebsite.com/auth/login" if !isProd { googleRedirect = fmt.Sprintf("http://localhost%s/auth/login", port) } auth.Config.CookieSecret = []byte("YOUR_COOKIE_SECRET") auth.Config.LoginSuccessRedirect = "/secret" auth.Config.CookieSecure = false mainRouter := http.NewServeMux() mainRouter.Handle("/auth/login", auth.Google(googleClientID, googleClientSecret, googleRedirect)) mainRouter.HandleFunc("/", logInHandler) mainRouter.HandleFunc("/secret", auth.SecureFunc(secreteHandler)) mainRouter.HandleFunc("/private", auth.SecureFunc(secreteHandler)) mainRouter.HandleFunc("/auth/logout", logoutHandler) fmt.Println("Serving http://localhost" + port) if err := http.ListenAndServe(port, mainRouter); err != nil { panic(err) } }
func mainRun() { lf, err := openToAppend(logPath) if err != nil { log.Panic(err) } defer lf.Close() log.SetOutput(lf) googleRedirect := "http://domain.com/auth/login" if !isInVPC { googleRedirect = fmt.Sprintf("http://localhost%s/auth/login", port) } auth.Config.CookieSecret = []byte("YOUR_COOKIE_SECRET") auth.Config.LoginSuccessRedirect = "/main" auth.Config.CookieSecure = false rootContext := context.Background() mainRouter := http.NewServeMux() // func (mux *ServeMux) Handle(pattern string, handler Handler) mainRouter.Handle("/static/", http.StripPrefix( "/static/", http.FileServer(http.Dir("static")), )) mainRouter.Handle("/", &ContextAdapter{ ctx: rootContext, handler: ContextHandlerFunc(handlerRoot), }) mainRouter.Handle("/auth/login", auth.Google( googleClientID, googleClientSecret, googleRedirect, )) mainRouter.Handle("/auth/logout", &ContextAdapter{ ctx: rootContext, handler: ContextHandlerFunc(handlerLogout), }) mainRouter.Handle("/main", &ContextAdapter{ ctx: rootContext, handler: WithAuthentication(ContextHandlerFunc(handlerMain)), }) mainRouter.Handle("/main/post_form_sentence", &ContextAdapter{ ctx: rootContext, handler: WithAuthentication(ContextHandlerFunc(handlerMainPostFormSentence)), }) mainRouter.Handle("/main/get_form_sentence", &ContextAdapter{ ctx: rootContext, handler: WithAuthentication(ContextHandlerFunc(handlerMainGetFormSentence)), }) mainRouter.Handle("/main/reset", &ContextAdapter{ ctx: rootContext, handler: WithAuthentication(ContextHandlerFunc(handlerMainReset)), }) mainRouter.Handle("/photo", &ContextAdapter{ ctx: rootContext, handler: WithAuthentication(ContextHandlerFunc(handlerPhoto)), }) mainRouter.Handle("/sendjson", &ContextAdapter{ ctx: rootContext, handler: ContextHandlerFunc(handlerSendJSON), }) mainRouter.Handle("/sendgob", &ContextAdapter{ ctx: rootContext, handler: ContextHandlerFunc(handlerSendGOB), }) mainRouter.Handle("/json", &ContextAdapter{ ctx: rootContext, handler: ContextHandlerFunc(handlerJSON), }) mainRouter.Handle("/gob", &ContextAdapter{ ctx: rootContext, handler: ContextHandlerFunc(handlerGOB), }) mainRouter.Handle("/db", &ContextAdapter{ ctx: rootContext, handler: WithDatabase(WithAuthentication(ContextHandlerFunc(handlerDB))), }) stdlog.Println("Server started at http://localhost" + port) log.Infoln("Server started at http://localhost" + port) graceful.Run(port, 10*time.Second, WithLogrus(mainRouter)) }