code: func (h *Handler) createNewUser(w http.ResponseWriter, r *http.Request, p httprouter.Params) (interface{}, error) {
  	var req *createNewUserReq
  	if err := httplib.ReadJSON(r, &req); err != nil {
  		return nil, trace.Wrap(err)
  	}
  	sess, err := h.auth.CreateNewUser(req.InviteToken, req.Pass, req.SecondFactorToken)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	ctx, err := h.auth.ValidateSession(sess.GetUser(), sess.GetName())
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	if err := SetSession(w, sess.GetUser(), sess.GetName()); err != nil {
  		return nil, trace.Wrap(err)
  	}
  	return NewSessionResponse(ctx)
  }
docs: // createNewUser creates new user entry based on the invite token
  //
  // POST /v1/webapi/users
  //
  // {"invite_token": "unique invite token", "pass": "user password", "second_factor_token": "valid second factor token"}
  //
  // Successful response: (session cookie is set)
  //
  // {"type": "bearer", "token": "bearer token", "user": "alex", "expires_in": 20}