diff --git a/MyObsidianVault/Pasted image 20241129092837.png b/MyObsidianVault/Pasted image 20241129092837.png new file mode 100644 index 0000000..d83af04 Binary files /dev/null and b/MyObsidianVault/Pasted image 20241129092837.png differ diff --git a/MyObsidianVault/WebDev/2 CodeIgniter/20.) Getting user_id from shield.md b/MyObsidianVault/WebDev/2 CodeIgniter/20.) Getting user_id from shield.md new file mode 100644 index 0000000..f69fb03 --- /dev/null +++ b/MyObsidianVault/WebDev/2 CodeIgniter/20.) Getting user_id from shield.md @@ -0,0 +1,91 @@ +https://www.youtube.com/watch?v=f0NifEgwh30&list=PLT9miexWCpPW6Z_OXNv2d78cqCrZaPrVG&index=33 + + +```php +auth()->user() +``` + + +```php +$userId = auth()->id(); +``` + +![[Pasted image 20241129092837.png]] + + + + + + + + + +AuthController +```php +//... + + // Post + public function login() + { + + if(auth()->loggedIn()){ + auth()->logout(); + } + + $rules = [ + "email" => "required|valid_email", + "password" => "required" + ]; + + if (!$this->validate($rules)) { + + $response = [ + "status" => false, + "message" => $this->validator->getErrors(), + "data" => [] + ]; + } else { + + // success + $credentials = [ + "email" => $this->request->getVar("email"), + "password" => $this->request->getVar("password") + ]; + + $loginAttempt = auth()->attempt($credentials); + + if (!$loginAttempt->isOK()) { + + $response = [ + "status" => false, + "message" => "Invalid login details", + "data" => [] + ]; + } else { + + // to test: directly getting $userObject via auth()->user() + + // We have a valid data set + $userObject = new UserModel(); + + $userData = $userObject->findById(auth()->id()); + + $token = $userData->generateAccessToken("thisismysecretkey"); + + $auth_token = $token->raw_token; + + $response = [ + "status" => true, + "message" => "User logged in successfully", + "data" => [ + "token" => $auth_token + ] + ]; + } + } + + return $this->respondCreated($response); + } + +//... + ``` \ No newline at end of file diff --git a/MyObsidianVault/WebDev/2 CodeIgniter/21.) User Logout API.md b/MyObsidianVault/WebDev/2 CodeIgniter/21.) User Logout API.md new file mode 100644 index 0000000..f8baaea --- /dev/null +++ b/MyObsidianVault/WebDev/2 CodeIgniter/21.) User Logout API.md @@ -0,0 +1,21 @@ +https://www.youtube.com/watch?v=H1KiXEsmsCs&list=PLT9miexWCpPW6Z_OXNv2d78cqCrZaPrVG&index=34 + +Routes.php: +```php +//Get +$routes->get("logout", "AuthController::logout", ["filter" => "apiauth"]); +``` + +AuthController.php +```php +public function logout() { + auth()->logout(); + auth()->user()->revokeAllAccessTokens(); + + return $this->respondCreated([ + "status" => true, + "message" => "User logged out successfully", + "data" => [] + ]); +} +``` \ No newline at end of file diff --git a/MyObsidianVault/WebDev/2 CodeIgniter/22.) Create Project API.md b/MyObsidianVault/WebDev/2 CodeIgniter/22.) Create Project API.md new file mode 100644 index 0000000..75d59b5 --- /dev/null +++ b/MyObsidianVault/WebDev/2 CodeIgniter/22.) Create Project API.md @@ -0,0 +1,46 @@ +https://www.youtube.com/watch?v=104Q76g7DWA&list=PLT9miexWCpPW6Z_OXNv2d78cqCrZaPrVG&index=36 + +ProjectController +```php +// Post +public function addProject() +{ + $rules = [ + "name" => "required", + "budget" => "required" + ]; + + if(!$this->validate($rules)) { + $response = [ + "status" => false, + "message" => $this->validator->getErrors(), + "data" => [] + ]; + }else { + $user_id = auth()-id(); + $name = $this->request->getVar("name"); + $budget = $this->request->getVar("budget"); + $pm = new ProjectModel(); + $data= [ + "user_id" => $user_id, + "name" => name, + "budget" => budget + ]; + if($pm->insert($data)) { + $response = [ + "status" => true, + "message" => "project saved", + "data" => [] + ]; + }else{ + $response = [ + "status" => false, + "message" => "project save failed", + "data" => [] + ]; + } + } + + $return $this->respondCreated($response); +} +``` \ No newline at end of file