This commit is contained in:
Torsten 2024-11-29 10:06:42 +01:00
parent afe2245110
commit d69b379f97
4 changed files with 158 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

View file

@ -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);
}
//...
```

View file

@ -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" => []
]);
}
```

View file

@ -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);
}
```