71 lines
1.9 KiB
Markdown
71 lines
1.9 KiB
Markdown
|
|
https://www.youtube.com/watch?v=_ZRHt-fWJpc&list=PLT9miexWCpPW6Z_OXNv2d78cqCrZaPrVG&index=29
|
||
|
|
|
||
|
|
app/Config/Routes.php
|
||
|
|
|
||
|
|
Remember: Shield added =>
|
||
|
|
```php
|
||
|
|
service('auth')->routes($routes)
|
||
|
|
```
|
||
|
|
|
||
|
|
```php
|
||
|
|
// API routes (put below service('auth'))
|
||
|
|
$routes->group("api", ["namespace" => "App\Controller\Api"], function($routes) {
|
||
|
|
$routes->post("register", "AuthController::register");
|
||
|
|
$routes->post("login", "AuthController::login");
|
||
|
|
$routes->get("profile", "AuthController::profile");
|
||
|
|
$routes->get("logout", "AuthController::logout", ["filter"=>"apiauth"]);
|
||
|
|
|
||
|
|
//$routes->post("add-project", "ProjectController::addProject");
|
||
|
|
//$routes->get("list-projects", "ProjectController::listProjects");
|
||
|
|
//$routes->delete("delete-project/(:num)", "ProjectController::deleteProject/$1");
|
||
|
|
});
|
||
|
|
```
|
||
|
|
|
||
|
|
$routes->get("logout", "AuthController::logout", ["filter" => "apiauth"]);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
```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" => []
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
```
|