You should, of course, consider adding some rigor such as CSRF protection to that form! I'd suggest something like http://www.gorillatoolkit.org/pkg/csrf for that!
On Tuesday, February 20, 2018 at 11:16:57 AM UTC-5, Sankar wrote: > > Hi, > > I have a Golang HTTP server which is consumed by mobile Apps via HTTP. > > For one workflow (reset-password) alone, I needed a web interface. So > instead of creating a new different webapp, I decided to make an endpoint > emit text/html instead of JSON and then serve a static HTML page, which > will then do a POST request. > > The same endpoint will serve HTML on HTTP GET and will process the values > in HTTP POST. > > However, I am not able to get the POST parameters in my HTTP request. Even > after a succesful req.ParseForm, my req.Form returns nil. > > I have attached the complete example.go file in the file, which you can > run offline. The relevant code section is: > > func alterPasswordHandler(res http.ResponseWriter, req *http.Request) { > if req.Method == http.MethodGet { > body := ` > <html> > <body> > <form method="post"> > <label for="password">Password</label> > <input id="password" type="password" placeholder="Password" required> > <label for="repeatPassword">Repeat Password</label> > <input id="repeatPassword" type="password" placeholder="Repeat Password" > required> > <button type="submit">Change Password</button> > </form> > </body> > </html> > ` > res.WriteHeader(http.StatusOK) > res.Header().Set("Content-Type", "text/html") > res.Write([]byte(body)) > } else if req.Method == http.MethodPost { > err := req.ParseForm() > log.Println(err, req.Form) // <<<<<<<<<<< req.Form is nil > } > } > > What am I doing wrong ? I do get the POST request but without the password > fields as part of the POST body. Any help ? > > Thanks. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.