Add POST request handling

This commit is contained in:
Parminder Singh 2018-03-07 16:14:35 +05:30
parent e949cc3eda
commit 701555974e

View file

@ -103,29 +103,43 @@ func ServeTemplate(w http.ResponseWriter, templateHTML string, data map[string]s
func AuthFallback( func AuthFallback(
w http.ResponseWriter, req *http.Request, authType string, sessionID string, w http.ResponseWriter, req *http.Request, authType string, sessionID string,
cfg config.Dendrite, cfg config.Dendrite,
) util.JSONRespose { ) *util.JSONResponse {
if req.Method == "GET" { ServeRecaptcha = func(){
// Handle Recaptcha
if authType == authtypes.LoginTypeRecaptcha {
data := map[string]string{ data := map[string]string{
"MyUrl": req.URL.String(), "MyUrl": req.URL.String(),
"Session": sessionID, "Session": sessionID,
"SiteKey": cfg.Matrix.RecaptchaPublicKey, "SiteKey": cfg.Matrix.RecaptchaPublicKey,
} }
ServeTemplate(w, RecaptchaTemplate, data) ServeTemplate(w, RecaptchaTemplate, data)
}
ServeSuccess = func(){
data := map[string]string{}
ServeTemplate(w, SuccessTemplate, data)
}
if req.Method == "GET" {
// Handle Recaptcha
if authType == authtypes.LoginTypeRecaptcha {
ServeRecaptcha()
return nil return nil
} }
return util.JSONResponse{ return &util.JSONResponse{
Code: 404, Code: 404,
JSON: jsonerror.NotFound("Unknown auth stage type"), JSON: jsonerror.NotFound("Unknown auth stage type"),
} }
} else if req.Method == "POST" { } else if req.Method == "POST" {
// TODO: Handle POST requests too clientIP := req.RemoteAddr
// Check Recaptcha response := req.Form.Get("g-recaptcha-response")
// Serve success if err = validateRecaptcha(cfg, response, clientIP), if resErr != nil {
// Else serve Recaptcha again ServeRecaptcha()
return nil
} }
return util.JSONResponse{
ServeSuccess()
return nil
}
return &util.JSONResponse{
Code: 405, Code: 405,
JSON: jsonerror.NotFound("Bad method"), JSON: jsonerror.NotFound("Bad method"),
} }