func authRegister(w http.ResponseWriter, r *http.Request) { lwutil.CheckMathod(r, "POST") // in var in struct { Username string Password string CountryAlpha2 string SignCode uint32 } err := lwutil.DecodeRequestBody(r, &in) lwutil.CheckError(err, "err_decode_body") if in.Username == "" || in.Password == "" { lwutil.SendError("err_input", "") } pwsha := lwutil.Sha224(in.Password + passwordSalt) // insert into db res, err := authDB.Exec("INSERT INTO user_accounts (username, password, countryAlpha2, signCode) VALUES (?, ?, ?, ?)", in.Username, pwsha, in.CountryAlpha2, in.SignCode) lwutil.CheckError(err, "err_account_exists") id, err := res.LastInsertId() lwutil.CheckError(err, "") // reply reply := struct { Userid int64 }{id} lwutil.WriteResponse(w, reply) }
func benchLogin(w http.ResponseWriter, r *http.Request) { lwutil.CheckMathod(r, "GET") // input in := struct { Username string Password string Appsecret string }{Username: "******", Password: "******"} if in.Username == "" || in.Password == "" { lwutil.SendError("err_input", "") } pwsha := lwutil.Sha224(in.Password + passwordSalt) // get userid row := authDB.QueryRow("SELECT id, countryCode, signCode FROM user_accounts WHERE username=? AND password=?", in.Username, pwsha) var userid uint64 var countryCode, signCode uint32 err := row.Scan(&userid, &countryCode, &signCode) lwutil.CheckError(err, "") // get appid appid := uint32(0) if in.Appsecret != "" { row = authDB.QueryRow("SELECT id FROM apps WHERE secret=?", in.Appsecret) err = row.Scan(&appid) lwutil.CheckError(err, "") } // new session rc := redisPool.Get() defer rc.Close() usertoken, err := newSession(w, userid, in.Username, appid, 0, 0, rc) lwutil.CheckError(err, "") // reply reply := struct { Usertoken string Appid uint32 }{usertoken, appid} lwutil.WriteResponse(w, reply) }
func authLogin(w http.ResponseWriter, r *http.Request) { lwutil.CheckMathod(r, "POST") // input var input struct { Username string Password string Appsecret string } err := lwutil.DecodeRequestBody(r, &input) lwutil.CheckError(err, "err_decode_body") if input.Username == "" || input.Password == "" { lwutil.SendError("err_input", "") } pwsha := lwutil.Sha224(input.Password + passwordSalt) // get userid row := authDB.QueryRow("SELECT id, countryAlpha2, signCode FROM user_accounts WHERE username=? AND password=?", input.Username, pwsha) var userid uint64 var countryAlpha2 string var signCode uint32 err = row.Scan(&userid, &countryAlpha2, &signCode) lwutil.CheckError(err, "err_not_match") // get appid appid := uint32(0) if input.Appsecret != "" { row = authDB.QueryRow("SELECT id FROM apps WHERE secret=?", input.Appsecret) err = row.Scan(&appid) lwutil.CheckError(err, "err_app_secret") } // new session rc := redisPool.Get() defer rc.Close() usertoken, err := newSession(w, userid, input.Username, appid, rc) lwutil.CheckError(err, "") // reply lwutil.WriteResponse(w, usertoken) }