code: func (h *Handler) u2fSignRequest(w http.ResponseWriter, r *http.Request, p httprouter.Params) (interface{}, error) {
  	var req *client.U2fSignRequestReq
  	if err := httplib.ReadJSON(r, &req); err != nil {
  		return nil, trace.Wrap(err)
  	}
  	u2fSignReq, err := h.auth.GetU2FSignRequest(req.User, req.Pass)
  	if err != nil {
  		return nil, trace.AccessDenied("bad auth credentials")
  	}
  
  	return u2fSignReq, nil
  }
docs: // u2fSignRequest is called to get a U2F challenge for authenticating
  //
  // POST /webapi/u2f/signrequest
  //
  // {"user": "alex", "pass": "abc123"}
  //
  // Successful response:
  //
  // {"version":"U2F_V2","challenge":"randombase64string","keyHandle":"longbase64string","appId":"https://mycorp.com:3080"}
  //