github.com/serge-v/zero@v1.0.2-0.20220911142406-af4b6a19e68a/examples/how-to-user-registration/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "log" 7 "net/http" 8 9 "github.com/serge-v/zero" 10 ) 11 12 var deploy = flag.Bool("deploy", false, "") 13 14 func handleRegister(w http.ResponseWriter, r *http.Request) { 15 if err := r.ParseForm(); err != nil { 16 http.Error(w, err.Error(), http.StatusBadRequest) 17 return 18 } 19 20 email := r.PostFormValue("email") 21 password := r.PostFormValue("password") 22 if email == "" { 23 http.Error(w, "email is empty", http.StatusBadRequest) 24 return 25 } 26 if password == "" { 27 http.Error(w, "password is empty", http.StatusBadRequest) 28 return 29 } 30 31 u, err := db.createUser(email, password) 32 if err != nil { 33 log.Println(err) 34 } 35 36 link := "http://localhost:8098/confirm?rand=" + u.RandomHash 37 38 fmt.Println("registration email sent to " + email) 39 } 40 41 func handleHomePage(w http.ResponseWriter, r *http.Request) { 42 http.ServeFile(w, r, "home.html") 43 } 44 45 func handleCss(w http.ResponseWriter, r *http.Request) { 46 http.ServeFile(w, r, "main.css") 47 } 48 49 func handleDemo(w http.ResponseWriter, r *http.Request) { 50 http.ServeFile(w, r, "demo.html") 51 } 52 53 var db userDB 54 55 func main() { 56 flag.Parse() 57 58 if *deploy { 59 if err := zero.Deploy(8097); err != nil { 60 log.Fatal(err) 61 } 62 return 63 } 64 65 db = loadDB("/tmp/demo.json") 66 67 http.HandleFunc("/", handleHomePage) 68 http.HandleFunc("/main.css", handleCss) 69 http.HandleFunc("/demo", handleDemo) 70 http.HandleFunc("/register", handleRegister) 71 72 if err := http.ListenAndServe("127.0.0.1:8098", nil); err != nil { 73 log.Fatal(err) 74 } 75 }