-
startup
Member
-
Posts: 65
Threads: 38
Joined: Jan 2022
Reputation:
0
06-26-2024, 01:30 AM
(This post was last modified: 06-28-2024, 12:49 AM by startup.)
i test code in codeigniter 4.5.3
in my router
PHP Code: $routes->group('api', ['namespace' => 'app\controllers\api'], function($routes) { $routes->post("login", "AuthController::login"); $routes->get("valid-access","AuthController::accessDenied"); $routes->post("register","AuthController::register"); $routes->get("profile","AuthController::profile", ["filter" => "apiauth"]); $routes->get("logout","AuthController::logout"); $routes->post("add-project","ProjectController::addProject"); $routes->get("list-project","ProjectController::listProjects"); $routes->get("delete-project/(:num)","ProjectController::deleteProjects/$1"); });
in my controller with app/controller/api
PHP Code: <?php
namespace App\Controllers\Api; use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\RESTful\ResourceController; use CodeIgniter\Shield\Models\UserModal; use CodeIgniter\Shield\Entities\User;
class AuthController extends ResourceController { public function register(){ $rule = [ "username" => "required|is_unique[user.username]", "email" => "required|valid_email|is_unique[auth_identities.secret]", "password" => "required" ]; if(!$this->validate($rule)){
}else{
} $this->responseCreated($response);
} public function login() { echo 'hello'; exit(); $rule = [ "email" => "required|is_valid", "password" => "required" ]; if(!$this->validate($rule)){ $response = [ "status" => false, "message" => $this->validator->getError(), "data" => [] ]; }else{ $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{ $userObject= new UserModal(); $userObject = $userObject->findById(auth()->id)); $token = $userData->generateAccessToken("ThisismysecretKey"); $au_token = $token->raw_token; $response = [ "status" => true, "message" => "User Logged in Successfully", "data" => [ "token" => $au_token ]; ]; } return $this->responseCreated($response); }
public function profile(){ $userId = auth()->id(); $userObject= new UserModal(); $userObject = $userObject->findById($userId); return $this->responseCreated([ "status" => true, "message" => "Profile Api Call", "data" => []
]);
}
public function logout(){ $session = session(); }
public function accessDenied(){ return $this->responseCreated([ "status" => false, "message" => "invalid Access", "data" => []
]); }
}
PHP Code: +--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+ | Method | Route | Name | Handler | Before Filters | After Filters | +--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+ | GET | / | » | \App\Controllers\Home::index | | | | GET | profile | » | \App\Controllers\Home::profile | | | | GET | register | » | \CodeIgniter\Shield\Controllers\RegisterController::registerView | | | | GET | login | » | \CodeIgniter\Shield\Controllers\LoginController::loginView | | | | GET | login/magic-link | magic-link | \CodeIgniter\Shield\Controllers\MagicLinkController::loginView | | | | GET | login/verify-magic-link | verify-magic-link | \CodeIgniter\Shield\Controllers\MagicLinkController::verify | | | | GET | logout | » | \CodeIgniter\Shield\Controllers\LoginController::logoutAction | | | | GET | auth/a/show | auth-action-show | \CodeIgniter\Shield\Controllers\ActionController::show | | | | GET | api/invalid-access | » | \App\Controllers\Api\AuthController::accessDenied | | | | GET | api/profile | » | \App\Controllers\Api\AuthController::profile | apiauth | apiauth | | GET | api/logout | » | \App\Controllers\Api\AuthController:: logout | | | | GET | api/list-project | » | \App\Controllers\Api\ProjectController::listProjects | | | | GET | api/delete-project/([0-9]+) | » | \App\Controllers\Api\ProjectController::deleteProjects/$1 | | | | POST | register | » | \CodeIgniter\Shield\Controllers\RegisterController::registerAction | | | | POST | login | » | \CodeIgniter\Shield\Controllers\LoginController::loginAction | | | | POST | login/magic-link | » | \CodeIgniter\Shield\Controllers\MagicLinkController::loginAction | | | | POST | auth/a/handle | auth-action-handle | \CodeIgniter\Shield\Controllers\ActionController::handle | | | | POST | auth/a/verify | auth-action-verify | \CodeIgniter\Shield\Controllers\ActionController::verify | | | | POST | api/register | » | \App\Controllers\Api\AuthController::register | | | | POST | api/login | » | \App\Controllers\Api\AuthController::login | | | | POST | api/add-project | » | \App\Controllers\Api\ProjectController::addProject | | | +--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+ Required Before Filters: forcehttps, pagecache Required After Filters: pagecache, performance, toolbar
i try to test url localhost:8080/shield/api/login but dont work
can explain why router dont go to controller404
Sorry! Cannot seem to find the page you were looking for.
i find this problem now i note someone need
i rewrite this code
PHP Code: $routes->group('api', ['namespace' => 'app\controllers\api'], function($routes)"
PHP Code: $routes->group('api', ['namespace' => 'App\Controllers\api'], function($routes)"
perfectly work
-
kenjis
Administrator
-
Posts: 3,671
Threads: 96
Joined: Oct 2014
Reputation:
230
-
pippuccio76
Senior Member
-
Posts: 524
Threads: 222
Joined: Jun 2017
Reputation:
2
(06-26-2024, 01:30 AM)startup Wrote: i test code in codeigniter 4.5.3
in my router
PHP Code: $routes->group('api', ['namespace' => 'app\controllers\api'], function($routes) { $routes->post("login", "AuthController::login"); $routes->get("valid-access","AuthController::accessDenied"); $routes->post("register","AuthController::register"); $routes->get("profile","AuthController::profile", ["filter" => "apiauth"]); $routes->get("logout","AuthController::logout"); $routes->post("add-project","ProjectController::addProject"); $routes->get("list-project","ProjectController::listProjects"); $routes->get("delete-project/(:num)","ProjectController::deleteProjects/$1"); });
in my controller with app/controller/api
PHP Code: <?php
namespace App\Controllers\Api; use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\RESTful\ResourceController; use CodeIgniter\Shield\Models\UserModal; use CodeIgniter\Shield\Entities\User;
class AuthController extends ResourceController { public function register(){ $rule = [ "username" => "required|is_unique[user.username]", "email" => "required|valid_email|is_unique[auth_identities.secret]", "password" => "required" ]; if(!$this->validate($rule)){
}else{
} $this->responseCreated($response);
} public function login() { echo 'hello'; exit(); $rule = [ "email" => "required|is_valid", "password" => "required" ]; if(!$this->validate($rule)){ $response = [ "status" => false, "message" => $this->validator->getError(), "data" => [] ]; }else{ $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{ $userObject= new UserModal(); $userObject = $userObject->findById(auth()->id)); $token = $userData->generateAccessToken("ThisismysecretKey"); $au_token = $token->raw_token; $response = [ "status" => true, "message" => "User Logged in Successfully", "data" => [ "token" => $au_token ]; ]; } return $this->responseCreated($response); }
public function profile(){ $userId = auth()->id(); $userObject= new UserModal(); $userObject = $userObject->findById($userId); return $this->responseCreated([ "status" => true, "message" => "Profile Api Call", "data" => []
]);
}
public function logout(){ $session = session(); }
public function accessDenied(){ return $this->responseCreated([ "status" => false, "message" => "invalid Access", "data" => []
]); }
}
PHP Code: +--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+ | Method | Route | Name | Handler | Before Filters | After Filters | +--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+ | GET | / | » | \App\Controllers\Home::index | | | | GET | profile | » | \App\Controllers\Home::profile | | | | GET | register | » | \CodeIgniter\Shield\Controllers\RegisterController::registerView | | | | GET | login | » | \CodeIgniter\Shield\Controllers\LoginController::loginView | | | | GET | login/magic-link | magic-link | \CodeIgniter\Shield\Controllers\MagicLinkController::loginView | | | | GET | login/verify-magic-link | verify-magic-link | \CodeIgniter\Shield\Controllers\MagicLinkController::verify | | | | GET | logout | » | \CodeIgniter\Shield\Controllers\LoginController::logoutAction | | | | GET | auth/a/show | auth-action-show | \CodeIgniter\Shield\Controllers\ActionController::show | | | | GET | api/invalid-access | » | \App\Controllers\Api\AuthController::accessDenied | | | | GET | api/profile | » | \App\Controllers\Api\AuthController::profile | apiauth | apiauth | | GET | api/logout | » | \App\Controllers\Api\AuthController:: logout | | | | GET | api/list-project | » | \App\Controllers\Api\ProjectController::listProjects | | | | GET | api/delete-project/([0-9]+) | » | \App\Controllers\Api\ProjectController::deleteProjects/$1 | | | | POST | register | » | \CodeIgniter\Shield\Controllers\RegisterController::registerAction | | | | POST | login | » | \CodeIgniter\Shield\Controllers\LoginController::loginAction | | | | POST | login/magic-link | » | \CodeIgniter\Shield\Controllers\MagicLinkController::loginAction | | | | POST | auth/a/handle | auth-action-handle | \CodeIgniter\Shield\Controllers\ActionController::handle | | | | POST | auth/a/verify | auth-action-verify | \CodeIgniter\Shield\Controllers\ActionController::verify | | | | POST | api/register | » | \App\Controllers\Api\AuthController::register | | | | POST | api/login | » | \App\Controllers\Api\AuthController::login | | | | POST | api/add-project | » | \App\Controllers\Api\ProjectController::addProject | | | +--------+-----------------------------+--------------------+--------------------------------------------------------------------+----------------+---------------+ Required Before Filters: forcehttps, pagecache Required After Filters: pagecache, performance, toolbar localhost:8080/
i try to test url localhost:8080/shield/api/login but dont work
can explain why router dont go to controller404
Sorry! Cannot seem to find the page you were looking for.
i find this problem now i note someone need
i rewrite this code
PHP Code: $routes->group('api', ['namespace' => 'app\controllers\api'], function($routes)"
PHP Code: $routes->group('api', ['namespace' => 'App\Controllers\api'], function($routes)"
perfectly work
If you have a route write as login you must test on localhost as
Code: http://localhost:8080/login
you doesn't insert absoluth path , the path must insert as namespace (if the controller isn't in App\Controllers)
|