func main() { addr := flag.String("addr", ":8080", "address") flag.Parse() gomniauth.SetSecurityKey("key") gomniauth.WithProviders( github.New("clientid", "secretkey", "http://localhost:8080/auth/callback/github"), ) http.HandleFunc("/1/0", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hoge")) }) http.Handle("/1/1", &templateHandler{filename: "chat.html"}) http.Handle("/2/1", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth", loginHandler) r := newRoom() r.tracer = trace.New(os.Stdout) http.Handle("/1/2", r) go r.run() if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "The addr of the application.") flag.Parse() // parse the flags gomniauth.SetSecurityKey("some long key") gomniauth.WithProviders( facebook.New("key", "secret", "http://localhost:8080/auth/callback/facebook"), github.New("key", "secret", "http://localhost:8080/auth/callback/github"), google.New("key", "secret", "http://localhost:8080/auth/callback/google"), ) r := newRoom() r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) // get the room going go r.run() // start the web server log.Println("Starting web server on", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "アプリケーションのアドレス") flag.Parse() gomniauth.SetSecurityKey(signature.RandomKey(64)) gomniauth.WithProviders( google.New( os.Getenv("client_id"), os.Getenv("client_secret"), "http://localhost:8080/auth/callback/google")) r := newRoom(UseFileSystemAvatar) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header().Set("Location", "/chat") w.WriteHeader(http.StatusTemporaryRedirect) }) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploaderHandler) http.Handle("/avatars/", http.StripPrefix("/avatars/", http.FileServer(http.Dir("./avatars")))) go r.run() log.Println("Webサーバーを開始します。ポート: ", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "The addr of the application.") flag.Parse() gomniauth.SetSecurityKey(os.Getenv("GOCHAT_SEC_KEY")) gomniauth.WithProviders( soundcloud.New(os.Getenv("ENV_SC_CLIENT_ID"), os.Getenv("ENV_SC_SECRET"), os.Getenv("ENV_SC_CALLBACK_URL")), github.New(os.Getenv("ENV_GH_CLIENT_ID"), os.Getenv("ENV_GH_SECRET"), os.Getenv("ENV_GH_CALLBACK_URL")), ) r := newRoom(UseGravatar) r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/logout", logoutHandler) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploaderHandler) http.Handle("/avatars/", http.StripPrefix("/avatars/", http.FileServer(http.Dir("./avatars/")))) go r.run() log.Println("Starting web server on ", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func _main() { var addr = flag.String("addr", ":8080", "アプリケーションのアドレス") var callbackURL = flag.String("google-oauth-callback", "http://localhost:8080/auth/callback/google", "Google認証のコールバックURL") flag.Parse() gomniauth.SetSecurityKey(signature.RandomKey(64)) gomniauth.WithProviders( google.New(os.Getenv("GOOGLE_OAUTH_CLIENT_ID"), os.Getenv("GOOGLE_OAUTH_CLIENT_SECRET"), *callbackURL), ) r := newRoom() r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "index.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) go r.run() log.Println("Webサーバーを開始します。ポート: ", *addr) log.Println("Google認証のコールバックURL: ", *callbackURL) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe: ", err) } }
// Initialize collects server-side credential from environment variables and prepare for authentication with Github OAuth. // // Client authentication is disabled and CurrentUser always returns "anonymous" if any of the environment variables are missing. func Initialize(anynomous User, cookieSecret []byte) { store = sessions.NewCookieStore(cookieSecret) githubCallbackBase = os.Getenv("GITHUB_CALLBACK_URL") cred := struct { githubRandomHashKey string githubOmniauthID string githubOmniauthKey string }{ os.Getenv("GITHUB_RANDOM_HASH_KEY"), os.Getenv("GITHUB_OMNI_AUTH_ID"), os.Getenv("GITHUB_OMNI_AUTH_KEY"), } defaultUser = anynomous if cred.githubRandomHashKey == "" || cred.githubOmniauthID == "" || cred.githubOmniauthKey == "" || githubCallbackBase == "" { glog.Warningf( "Missing one or more Gomniauth Environment Variables: Running with with limited functionality! \n GITHUB_RANDOM_HASH_KEY [%s] \n GITHUB_OMNI_AUTH_ID [%s] \n GITHUB_OMNI_AUTH_KEY [%s] \n GITHUB_CALLBACK_URL [%s]", cred.githubRandomHashKey, cred.githubOmniauthID, cred.githubOmniauthKey, githubCallbackBase, ) enabled = false return } url := fmt.Sprintf("%s/auth/github/callback", githubCallbackBase) gomniauth.SetSecurityKey(cred.githubRandomHashKey) gomniauth.WithProviders( githubOauth.New(cred.githubOmniauthID, cred.githubOmniauthKey, url), ) glog.Infof("Enabled authentication by github OAuth2") enabled = true }
func main() { var addr = flag.String("addr", ":8080", "The addr of the application") flag.Parse() gomniauth.SetSecurityKey("wetre94541gd616fd1g6fd") gomniauth.WithProviders( facebook.New("1578364069092723", "3be3e79ef1c5a14a8d556d45ab28bc23", "http://localhost:8080/auth/callback/facebook"), google.New("773345955621-aj0hpvne7depi9er2cp72t2mrknb3l26.apps.googleusercontent.com", "zT2_36o-f18VxmmvdltT_9vX", "http://localhost:8080/auth/callback/google"), ) r := newRoom() r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHander) http.Handle("/room", r) //start the room in the background go r.run() //start the web server log.Println("Starting web server on", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "アプリケーションのアドレス") flag.Parse() // フラグを解釈します // Gomniauthのセットアップ gomniauth.SetSecurityKey("セキュリティキー") gomniauth.WithProviders( facebook.New("クライアントID", "秘密の値", "http://localhost:8080/auth/callback/facebook"), github.New("クライアントID", "秘密の値", "http://localhost:8080/auth/callback/github"), google.New("クライアントID", "秘密の値", "http://localhost:8080/auth/callback/google"), ) r := newRoom() r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) // チャットルームを開始します go r.run() // Webサーバーを起動します log.Println("Webサーバーを開始します。ポート: ", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func setUpProvider() { // setup the providers gomniauth.SetSecurityKey(MySecurityKey) gomniauth.WithProviders( google.New(GoogleClientId, GoogleSecret, "http://localhost:8080/auth/google/callback"), ) }
func main() { var addr = flag.String("addr", ":18080", "アプリケーションのアドレス") flag.Parse() // フラグを解釈します // Gomniauth のセットアップ gomniauth.SetSecurityKey("RESIDENCE101") gomniauth.WithProviders( facebook.New("957653387645069", "bd4b9984868d78cb2012b4554a6c61a8", "http://localhost:18080/auth/callback/facebook"), github.New("60c22ff289a776f58746", "cd1581d547e80cfc01586bdfd343317a8b9e3f65", "http://localhost:18080/auth/callback/github"), google.New("940801949020-9b6d4r5emh1k6ds9mmmiq1esdt669mrs.apps.googleusercontent.com", "jd3H38hVee1Ragcx0UzStHoW", "http://localhost:18080/auth/callback/google"), ) r := newRoom() http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) // チャットルームを開始します go r.run() // Web サーバーを開始します log.Println("Web サーバーを開始します。ポート: ", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
// Initialize collects server-side credential from environment variables and prepare for authentication with Github OAuth. // // Client authentication is disabled and CurrentUser always returns "anonymous" if any of the environment variables are missing. func Initialize(anynomous User, cookieSecret []byte) { store = sessions.NewCookieStore(cookieSecret) githubCallbackURL = os.Getenv("GITHUB_CALLBACK_URL") cred := struct { githubRandomHashKey string githubOmniauthID string githubOmniauthKey string }{ os.Getenv("GITHUB_RANDOM_HASH_KEY"), os.Getenv("GITHUB_OMNI_AUTH_ID"), os.Getenv("GITHUB_OMNI_AUTH_KEY"), } defaultUser = anynomous if cred.githubRandomHashKey == "" || cred.githubOmniauthID == "" || cred.githubOmniauthKey == "" || githubCallbackURL == "" { log.Printf( "Missing one or more Gomniauth Environment Variables: Running with with limited functionality! \n githubRandomHashKey [%s] \n githubOmniauthID [%s] \n githubOmniauthKey[%s] \n githubCallbackURL[%s]", cred.githubRandomHashKey, cred.githubOmniauthID, cred.githubOmniauthKey, githubCallbackURL, ) enabled = false return } githubCallbackURL = path.Join(githubCallbackURL, "/auth/github/callback") gomniauth.SetSecurityKey(cred.githubRandomHashKey) gomniauth.WithProviders( githubOauth.New(cred.githubOmniauthID, cred.githubOmniauthKey, githubCallbackURL), ) enabled = true }
func main() { flag.Parse() // parse the flags // setup gomniauth gomniauth.SetSecurityKey("98dfbg7iu2nb4uywevihjw4tuiyub34noilk") gomniauth.WithProviders( github.New("3d1e6ba69036e0624b61", "7e8938928d802e7582908a5eadaaaf22d64babf1", "http://localhost:8080/auth/callback/github"), google.New("44166123467-o6brs9o43tgaek9q12lef07bk48m3jmf.apps.googleusercontent.com", "rpXpakthfjPVoFGvcf9CVCu7", "http://localhost:8080/auth/callback/google"), facebook.New("537611606322077", "f9f4d77b3d3f4f5775369f5c9f88f65e", "http://localhost:8080/auth/callback/facebook"), ) r := newRoom() r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) // get the room going go r.run() // start the web server log.Println("Starting web server on", *host) if err := http.ListenAndServe(*host, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "app address") flag.Parse() gomniauth.SetSecurityKey(signature.RandomKey(64)) gomniauth.WithProviders( google.New("391625238451-97uhiqpmehlvmgc48f5dscu2qi933v4l.apps.googleusercontent.com", "eqjo3wv_tXr6i9FJlgFiYRKD", "http://localhost:8080/auth/callback/google"), ) r := newRoom() r.tracer = trace.New(os.Stdout) // http.Handle("/", &templateHandler{filename: "chat.html"}) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) go r.run() log.Println("launching server port :", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "The addr of the application.") // set up gomniauth gomniauth.SetSecurityKey("lfq618") gomniauth.WithProviders( facebook.New("608517422619964", "ff3966474a0e0925419a57cd79776bdd", "http://localhost:8080/auth/callback/facebook"), github.New("6f6ab375ab58c83ce223", "20e565a7e13d235c60ede23a26d33bd8a735e03a", "http://localhost:8080/auth/callback/github"), google.New("507301202565-k1drgkq7v6u5b42fk849k90pm33b3van.apps.googleusercontent.com", "EmPZvBUVc1-Tc5fWQ4gjSh78", "http://localhost:8080/auth/callback/google"), ) r := newRoom() //r.tracer = trace.New(os.Stdout) //root http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) //get the room goint go r.run() //start the web server log.Println("Starting web server on", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
// Authenticate with Github. If env data is missing turn Auth off. func getAuth() auth { a := auth{} a.githubRandomHashKey = os.Getenv("GITHUB_RANDOM_HASH_KEY") a.githubOmniauthID = os.Getenv("GITHUB_OMNI_AUTH_ID") a.githubOmniauthKey = os.Getenv("GITHUB_OMNI_AUTH_KEY") a.githubCallbackURL = os.Getenv("GITHUB_CALLBACK_URL") // Let user know if a key is missing and that auth is disabled. if a.githubRandomHashKey == "" || a.githubOmniauthID == "" || a.githubOmniauthKey == "" || a.githubCallbackURL == "" { log.Printf("Missing one or more Gomniauth Environment Variables: Running with with limited functionality! \n githubRandomHashKey [%s] \n githubOmniauthID [%s] \n githubOmniauthKey[%s] \n githubCallbackURL[%s]", a.githubRandomHashKey, a.githubOmniauthID, a.githubOmniauthKey, a.githubCallbackURL) a.authorization = false return a } gomniauth.SetSecurityKey(a.githubRandomHashKey) gomniauth.WithProviders( githubOauth.New(a.githubOmniauthID, a.githubOmniauthKey, a.githubCallbackURL+"/auth/github/callback"), ) a.authorization = true return a }
func main() { addr := flag.String("addr", ":8080", "アプリケーションのアドレス") flag.Parse() gomniauth.SetSecurityKey("GoChat") gomniauth.WithProviders( google.New(googleClientID, googleSecret, "http://localhost:8080/auth/callback/google"), ) r := newRoom() r.tracer = trace.New(os.Stdout) // http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {w.Write([]byte())}) // http.Handle("/assets/", http.StripPrefix("/assets", http.FileServer(http.Dir("/assetsへのパス")))) // *templateHandler型(templateHandlerのポインタ型)にServeHTTPが実装されている // のでtemplateHandlerのアドレスを渡してポインタである*templateHandler型を渡す http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) go r.run() log.Println("Webサーバを開始します。ポート: ", *addr) // start web server if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func init() { // gomniauth 정보 셋팅 gomniauth.SetSecurityKey(authSecurityKey) gomniauth.WithProviders( google.New("636296155193-a9abes4mc1p81752l116qkr9do6oev3f.apps.googleusercontent.com", "EVvuy0Agv4jWflml0pvC6-vI", "http://127.0.0.1:3000/auth/callback/google"), ) }
func init() { gomniauth.SetSecurityKey(signature.RandomKey(64)) gomniauth.WithProviders( google.New("712450255947-o5uppfp82sc3sb2c1dum7es8k93ras4q.apps.googleusercontent.com", "TrFX1I5QJZ_unJ-P5UgYLF4N", PalvelimenOsoite+"/authcallback/google"), ) gob.Register(User{}) }
func main() { // The de nition for the addr variable sets up our flag // as a string that defaults to :8080 addr := flag.String("addr", ":8080", "The addr of the application.") // must call flag. Parse() that parses the arguments // and extracts the appropriate information. // Then, we can reference the value of the host ag by using *addr. flag.Parse() // parse the flags // set up gomniauth gomniauth.SetSecurityKey("some long key") gomniauth.WithProviders( facebook.New("key", "secret", ""), github.New("key", "secret", ""), google.New("151570833065-i9p63mogjm7adt0h0490or9bvqua0r2l.apps.googleusercontent.com", "jzEEORYarixD30S6qyosGrWe", "http://localhost:3000/auth/callback/google"), ) // r := newRoom(UseAuthAvatar) // r := newRoom(UseGravatar) r := newRoom(UseFileSystemAvatar) r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploaderHandler) http.Handle("/avatars/", http.StripPrefix("chapter2/chat/avatars/", http.FileServer(http.Dir("./avatars")))) // get the room going // running the room in a separate Go routine // so that the chatting operations occur in the background, // allowing our main thread to run the web server. go r.run() // start the web server log.Println("Starting web server on", *addr) // start the web server if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "The addr of the application.") flag.Parse() // parse the flags // set up gomniauth gomniauth.SetSecurityKey("amazing2050") gomniauth.WithProviders( facebook.New("key", "secret", "http://localhost:8080/auth/callback/facebook"), github.New("key", "secret", "http://localhost:8080/auth/callback/github"), google.New("638547583987-2l7p38d7iq7kpp2rvvms4ambvg1qaq5b.apps.googleusercontent.com", "whS4UlWsA0YXRdD7nVQScrcK", "http://localhost:8080/auth/callback/google"), ) r := newRoom() r.tracer = trace.New(os.Stdout) // handlers http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHander) http.Handle("/room", r) http.Handle("/upload", MustAuth(&templateHandler{filename: "upload.html"})) http.HandleFunc("/uploader", uploaderHandler) // both http.StripPrefix and http.FileServer return Handler and they // use the decorator pattern // The StripPrefix function takes Handler in, modifies the path by removing // the specified prefix, and passes functionality onto an inner handler. // The FileServer handler simply serve static files, and generating the // 404 Not Fount error if it cannot find the file. http.Handle("/avatars/", http.StripPrefix("/avatars/", http.FileServer(http.Dir("./avatars")))) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) // get the room going go r.run() // start the web server log.Println("Starting web server on", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8001", "アプリケーションのアドレス") flag.Parse() gomniauth.SetSecurityKey("mysrcuritykey") gomniauth.WithProviders( //facebook.New("???", "???", "http://......") google.New("400720597353-vb6mkg2ia79blui2qs2vbc67dedtnrns.apps.googleusercontent.com", "qUDc1kADhKC7dGjdNNI1MVU7", "http://127.0.0.1:8001/auth/callback/google"), ) //r := newRoom(UseAuthAvatar) //r := newRoom(UserGravatar) r := newRoom() r.tracer = trace.New(os.Stdout) //StripPrefix显示文件目录列表 //FileServer文件服务器 http.Handle("/avatars/", http.StripPrefix("/avatars", http.FileServer(http.Dir("./avatars")))) http.Handle("/assets/", http.StripPrefix("/assets", http.FileServer(http.Dir("./assets")))) //http.Handler("/assets/", http.FileServer(http.Dir("./assets"))) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploaderHandler) // '/root' 只解析到/root '/root/' 解析/root/XXXXX 至结束 //启动socket监听 go r.run() log.Println("Web服务器启动,端口:", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServer:", err) } }
func main() { secretKey := "kyokomi-secret" gomniauth.SetSecurityKey(secretKey) gomniauth.WithProviders( github.New(githubClientID, githubSecretKey, githubRedirectURL), google.New(googleClientID, googleSecretKey, googleRedirectURL), ) kami.Get("/", indexHandler) kami.Get("/auth/login/:provider", loginHandler) kami.Get("/auth/callback/:provider", callbackHandler) kami.Serve() }
func main() { addr := flag.String("addr", ":8080", "An address of application") flag.Parse() config := loadConfig() gomniauth.SetSecurityKey("セキュリティキー") gomniauth.WithProviders( facebook.New( config.Facebook.ClientID, config.Facebook.ClientSecret, "http://localhost:8080/auth/callback/facebook", ), github.New( config.Github.ClientID, config.Github.ClientSecret, "http://localhost:8080/auth/callback/github", ), google.New( config.Google.ClientID, config.Google.ClientSecret, "http://localhost:8080/auth/callback/google", ), ) r := newRoom(UseGravatar) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploadHandler) go r.run() log.Println("start web server. port: ", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "アプリケーションのアドレス") flag.Parse() c, err := redis.Dial("tcp", ":6379") if err != nil { fmt.Println(err) return } defer c.Close() log.Println("Redisにせつぞくしました。") gomniauth.SetSecurityKey(os.Getenv("FUNNYCHAT_SECURITY_KEY")) gomniauth.WithProviders( facebook.New(os.Getenv("FB_CLIENT_ID"), os.Getenv("FB_SECRET_KEY"), "http://localhost:8080/auth/callback/facebook"), google.New(os.Getenv("GOOGLE_CLIENT_ID"), os.Getenv("GOOGLE_SECRET_KEY"), "http://localhost:8080/auth/callback/google"), github.New(os.Getenv("GITHUB_CLIENT_ID"), os.Getenv("GITHUB_SECRET_KEY"), "http://localhost:8080/auth/callback/github"), ) r := newRoom(c) r.subscribe("room01") r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) http.Handle("/room", r) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploadHandler) http.Handle("/avatars/", http.StripPrefix("/avatars/", http.FileServer(http.Dir("./avatars")))) http.Handle("/assets/", http.StripPrefix("/assets", http.FileServer(http.Dir("assets")))) go r.run() go r.receive() log.Println("Webサーバーを開始します。ポート: ", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "アプリケーションのアドレス") flag.Parse() // フラグを解釈します // Gomniauthのセットアップ gomniauth.SetSecurityKey(os.Getenv("SECURITY_KEY")) gomniauth.WithProviders( google.New(os.Getenv("GOOGLE_CLIENT_ID"), os.Getenv("GOOGLE_SECRET_KEY"), "http://localhost:8080/auth/callback/google"), ) // staticファイルを配布する場合 // http.Handle("/assets/", // http.StripPrefix("/assets", // http.FileServer(http.Dir("/assets/")))) r := newRoom(UseFileSystemAvatar) r.tracer = trace.New(os.Stdout) // ルート http.Handle("/login", &templateHandler{filename: "login.html"}) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.HandleFunc("/auth/", loginHandler) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) http.Handle("/room", r) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploaderHandler) // TODO: p77を再読 http.Handle("/avatars/", http.StripPrefix("/avatars/", http.FileServer(http.Dir("./avatars/")))) // チャットルームを開始する go r.run() // Webサーバーを開始します log.Println("Webサーバーを開始します。ポート: ", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe", err) } }
func main() { var addr = flag.String("addr", ":8080", "Address to serve application from") var debug = flag.Bool("debug", true, "Turn on debugging") flag.Parse() gomniauth.SetSecurityKey("some long key") gomniauth.WithProviders( google.New(googleClientID, googleClientSecret, "http://localhost:8080/auth/callback/google"), ) r := newRoom() if *debug { r.tracer = trace.New(os.Stdout) } http.Handle("/static/", http.StripPrefix("/static", http.FileServer(http.Dir("static/")))) http.Handle("/avatars/", http.StripPrefix("/avatars/", http.FileServer(http.Dir("./avatars")))) http.Handle("/", &templateHandler{filename: "chat.html"}) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) http.HandleFunc("/auth/", loginHandler) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploadHandler) http.Handle("/room", r) // start the room for clients to connect to go r.run() //start the web server log.Println("Starting web server on port ", *addr) if err := http.ListenAndServe(":8080", nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { flag.Parse() // parse the flags // setup gomniauth gomniauth.SetSecurityKey("98dfbg7iu2nb4uywevihjw4tuiyub34noilk") gomniauth.WithProviders( github.New("3d1e6ba69036e0624b61", "7e8938928d802e7582908a5eadaaaf22d64babf1", "http://localhost:8080/auth/callback/github"), google.New("44166123467-o6brs9o43tgaek9q12lef07bk48m3jmf.apps.googleusercontent.com", "rpXpakthfjPVoFGvcf9CVCu7", "http://localhost:8080/auth/callback/google"), facebook.New("537611606322077", "f9f4d77b3d3f4f5775369f5c9f88f65e", "http://localhost:8080/auth/callback/facebook"), ) r := newRoom() r.tracer = trace.New(os.Stdout) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header().Set("Location", "/chat") w.WriteHeader(http.StatusTemporaryRedirect) }) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.HandleFunc("/uploader", uploaderHandler) http.Handle("/avatars/", http.StripPrefix("/avatars/", http.FileServer(http.Dir("./avatars")))) // get the room going go r.run() // start the web server log.Println("Starting web server on", *host) if err := http.ListenAndServe(*host, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "The addr of the application") flag.Parse() // parse the flag gomniauth.SetSecurityKey(signature.RandomKey(64)) gomniauth.WithProviders( google.New("605169096484-hvgf6b5u60cdv0krm7r106b1v4lsuvk9.apps.googleusercontent.com", "0F1iTCjapfcoFUupsINMc-6X", "http://localhost:8080/auth/callback/google"), ) r := newRoom() r.tracer = trace.New(os.Stdout) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.Handle("/upload", &templateHandler{filename: "upload.html"}) http.Handle("/avatars/", http.StripPrefix("/avatars/", http.FileServer(http.Dir("./avatars")))) http.HandleFunc("/uploader", uploaderHandler) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) // get the room going go r.run() // start the web server log.Println("Starting web server on", *addr) if err := http.ListenAndServe(*addr, nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":8080", "The addr of the application.") flag.Parse() // parse the flags // set up gomniauth gomniauth.SetSecurityKey("this is my own crazy phrase not") gomniauth.WithProviders( facebook.New("key", "secret", "http://localhost:8080/auth/callback/facebook"), github.New("key", "secret", "http://localhost:8080/auth/callback/github"), google.New("AIzaSyAHdC_P8iM2SU3D5BEh5747tGb4Sr5xxj8", "3aoJeQ8Ub3l2Gfvz-wNIOXUo", "http://localhost:8080/auth/callback/google"), ) r := newRoom() // output to the os.Stdout standard output pipe (prints output to the terminal) //r.tracer = trace.New(os.Stdout) // root http.Handle("/chat", MustAuth(&templateHandler{filename: "chat.html"})) http.Handle("/login", &templateHandler{filename: "login.html"}) http.HandleFunc("/auth/", loginHandler) http.Handle("/room", r) // Directory used to store css and js files. //http.Handle("/assets/", // http.StripPrefix("/assets", // http.FileServer(http.Dir("/path/to/assets/")))) // get the room going go r.run() // Writes out the hardcoded HTML when a request is made /*http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte(` <html> <head> <title>Chat</title> </head> <body> Let's chat! </body> </html> `)) })*/ // Starts web server using ListenAndServe log.Println("Starting web server on", *addr) if err := http.ListenAndServe(":8080", nil); err != nil { log.Fatal("ListenAndServe:", err) } }
func main() { var addr = flag.String("addr", ":3000", "The addr of the application") flag.Parse() // set up gomniauth gomniauth.SetSecurityKey("some long key") gomniauth.WithProviders( facebook.New("key", "secret", "http://localhost:3000/auth/callback/facebook"), github.New("key", "secret", "http://localhost:3000/auth/callback/github"), google.New("89198476902-sp9n6ukjk37ccc2vuh11chkga865sidq.apps.googleusercontent.com", "GeQA1wriK2DdN_tTg8Sv1x9r", "http://localhost:3000/auth/callback/google"), ) r := newRoom(UseAuthAvatar) http.HandleFunc("/room", r.serveHTTP) mainTemplate := &templateHandler{filename: "chat.html", messages: r.Messages} loginTemplate := &templateHandler{filename: "login.html"} http.HandleFunc("/auth/", LoginHandler) http.HandleFunc("/chat", MustAuth(mainTemplate).ServeHTTP) http.HandleFunc("/login", loginTemplate.ServeHTTP) http.HandleFunc("/logout", func(w http.ResponseWriter, r *http.Request) { http.SetCookie(w, &http.Cookie{ Name: "auth", Value: "", Path: "/", MaxAge: -1, }) w.Header()["Location"] = []string{"/chat"} w.WriteHeader(http.StatusTemporaryRedirect) }) go r.run() log.Println("Server starting on ", *addr) err := http.ListenAndServe(*addr, nil) if err != nil { log.Fatal("ListenAndServe: ", err) } }