This commit is contained in:
Torsten 2024-12-04 20:44:53 +01:00
parent 58deb877e4
commit a9e7afd13a
2 changed files with 99 additions and 1 deletions

View file

@ -45,4 +45,50 @@ class AuthController extends ResourceController
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/
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" => []
]);
}
}
```