57 lines
1.5 KiB
PHP
57 lines
1.5 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Domain\Utilisateurs;
|
||
|
|
|
||
|
|
use App\Domain\Controller;
|
||
|
|
use App\Helpers\Authentification;
|
||
|
|
use App\Http\JSONResponse;
|
||
|
|
use App\Http\Request;
|
||
|
|
|
||
|
|
class AuthentificationController extends Controller {
|
||
|
|
|
||
|
|
public static function defineRoutes(): array {
|
||
|
|
|
||
|
|
return [
|
||
|
|
|
||
|
|
// Public routes.
|
||
|
|
self::Route( routeUrl: '/login', routeName: 'login', routeAction: 'loginForm', pageHeadTitle: 'Connexion' ),
|
||
|
|
|
||
|
|
// API Routes.
|
||
|
|
self::Route( routeUrl: '/api/auth', routeName: 'api->auth', routeAction: 'auth', routeMethods: ['POST'] ),
|
||
|
|
self::Route( routeUrl: '/api/auth/logout', routeName: 'api->auth->logout', routeAction: 'logout', routeMethods: ['POST'] ),
|
||
|
|
|
||
|
|
];
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
public function login(): View {
|
||
|
|
return new View( 'login' );
|
||
|
|
}
|
||
|
|
|
||
|
|
public function auth(): JSONResponse {
|
||
|
|
|
||
|
|
Request::setCORS();
|
||
|
|
|
||
|
|
$username = Request::get( 'username' );
|
||
|
|
$password = Request::get( 'password' );
|
||
|
|
|
||
|
|
// TODO : Récupération de l'utilisateur et verify_password.
|
||
|
|
|
||
|
|
$userId = 1;
|
||
|
|
Authentification::loginUser( $userId );
|
||
|
|
JSONResponse::sendSuccess( [ 'user_id' => $userId ] );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
public function logout(): JSONResponse {
|
||
|
|
|
||
|
|
if( !Authentification::isLoggedIn() ) {
|
||
|
|
return JSONResponse::sendError( [ 'message' => 'Alrady disconnected' ] );
|
||
|
|
}
|
||
|
|
|
||
|
|
Authentification::destroySession();
|
||
|
|
return JSONResponse::sendSuccess( [ 'message' => 'Logged out' ] );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|