obsidian/MyObsidianVault/WebDev/2 CodeIgniter/17.) Register API.md
2024-11-23 14:01:36 +01:00

46 lines
No EOL
1.1 KiB
Markdown

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]",
"password" => "required"
];
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.