cfmgrv4/app/Libraries/MyAuth/MyAuth.php
2024-10-11 14:26:38 +09:00

59 lines
1.2 KiB
PHP

<?php
namespace App\Libraries\MyAuth;
use App\Entities\UserEntity;
use App\Libraries\CommonLibrary;
// 참고:https://github.com/SyntaxPhoenix/iloclient
class MyAuth extends CommonLibrary
{
private $_session = null;
public function __construct()
{
$this->_session = \Config\Services::session();
}
final public function isLoggedIn(): bool
{
return $this->_session->has(SESSION_NAMES['ISLOGIN']);
}
final public function login(UserEntity $entity): void
{
$this->_session->set(SESSION_NAMES['ISLOGIN'], true);
$this->_session->set(SESSION_NAMES['AUTH'], [
'uid' => $entity->getPK(),
'name' => $entity->getTitle(),
'role' => $entity->role
]);
}
final public function logout(): void
{
// 세션 데이터 삭제
$this->_session->remove(SESSION_NAMES['ISLOGIN']);
$this->_session->remove(SESSION_NAMES['AUTH']);
// 모든 세션 데이터 삭제
$this->_session->destroy();
// 세션 쿠키 삭제
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(
session_name(),
'',
time() - 42000,
$params["path"],
$params["domain"],
$params["secure"],
$params["httponly"]
);
}
// 세션 재생성
session_start();
$this->_session->regenerate(true);
}
}