diff --git a/MyObsidianVault/Pasted image 20241126102145.png b/MyObsidianVault/Pasted image 20241126102145.png new file mode 100644 index 0000000..27d26c6 Binary files /dev/null and b/MyObsidianVault/Pasted image 20241126102145.png differ diff --git a/MyObsidianVault/Pasted image 20241126102214.png b/MyObsidianVault/Pasted image 20241126102214.png new file mode 100644 index 0000000..4f48665 Binary files /dev/null and b/MyObsidianVault/Pasted image 20241126102214.png differ diff --git a/MyObsidianVault/WebDev/2 CodeIgniter/17.) Register API.md b/MyObsidianVault/WebDev/2 CodeIgniter/17.) Register API.md index d4a3062..8016734 100644 --- a/MyObsidianVault/WebDev/2 CodeIgniter/17.) Register API.md +++ b/MyObsidianVault/WebDev/2 CodeIgniter/17.) Register API.md @@ -14,8 +14,8 @@ class AuthController extends ResourceController { $rules = [ "username" => "required|is_unique[users.username]", - "email" => "required|valid_email|is_unique[auth_identities.secret]", - "password" => "required" + "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)) { @@ -43,4 +43,6 @@ class AuthController extends ResourceController } ``` -Note: shield stores users in auth_identies. Email address should be stored in field secret. \ No newline at end of file +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/ \ No newline at end of file diff --git a/MyObsidianVault/WebDev/2 CodeIgniter/18.) Create login.md b/MyObsidianVault/WebDev/2 CodeIgniter/18.) Create login.md new file mode 100644 index 0000000..81eaf2f --- /dev/null +++ b/MyObsidianVault/WebDev/2 CodeIgniter/18.) Create login.md @@ -0,0 +1,74 @@ +https://www.youtube.com/watch?v=XJHFtfQQmRs&list=PLT9miexWCpPW6Z_OXNv2d78cqCrZaPrVG&index=31 + +https://onlinewebtutorblog.com/codeigniter-4-restful-api-using-shield-authentication/ + +In AuthController::login: + + + + +```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 { + + // We have a valid data set + $userObject = new UserModel(); + + $userData = $userObject->findById(auth()->id()); + + $token = $userData->generateAccessToken("thisismysecretkey"); + + $auth_token = $token->raw_token; // Only available after generation + + $response = [ + "status" => true, + "message" => "User logged in successfully", + "data" => [ + "token" => $auth_token + ] + ]; + } + } + + return $this->respondCreated($response); + } + +``` +https://shield.codeigniter.com/references/authentication/tokens/