AuthController: ```php use CodeIgniter\Restful\ResourceController; use CodeIgniter\Shield\Models\UserModel; use CodeIgniter\Shield\Entities\User; class AuthController extends ResourceController { //Post public function register() { $rules = [ "username" => "required|is_unique[users.username]", "email" => "required|valid_email|is_unique[auth_identities.secret]", // gets written to secret field in user table "password" => "required" // gets written to secret 2 field in user table ]; if (!$this->validate($rules)) { $response = [ "status" => false, "message" => $this->validator->getErrors(), "data" => [] ]; } else { $userObject = new UserModel(); // coming from Shield $userEntityObject = new User([ "username" => $this->request->getVar("username"), "email" => $this->request->getVar("email"), "password" => $this->request->getVar("password") ]); $userObject->save($userEntityObject); $response = [ "status" => true, "message" => "User saved successfully", "data" => [] ] } return $this->respondCreated($response); } } ``` Note: shield stores users in auth_identies. Email address should be stored in field secret. https://onlinewebtutorblog.com/codeigniter-4-restful-api-using-shield-authentication/ My version: ```php use CodeIgniter\Restful\ResourceController; use CodeIgniter\Shield\Models\UserModel; use CodeIgniter\Shield\Entities\User; class AuthController extends ResourceController { //Post public function register() { $rules = [ "username" => "required|is_unique[users.username]", "email" => "required|valid_email|is_unique[auth_identities.secret]", // gets written to secret field in user table "password" => "required" // gets written to secret 2 field in user table ]; if (!$this->validate($rules)) { return $this->respondCreated([ "status" => false, "message" => $this->validator->getErrors(), "data" => [] ] ); $um = new UserModel(); // coming from Shield $userEntity = new User([ "username" => $this->request->getVar("username"), "email" => $this->request->getVar("email"), "password" => $this->request->getVar("password") ]); $um->save($userEntity); return $this->respondCreated( [ "status" => true, "message" => "User saved successfully", "data" => [] ]); } } ```