diff --git a/hwe/sammo/API/Global/GetCachedMap.php b/hwe/sammo/API/Global/GetCachedMap.php index a41aa452..8735a01d 100644 --- a/hwe/sammo/API/Global/GetCachedMap.php +++ b/hwe/sammo/API/Global/GetCachedMap.php @@ -41,7 +41,7 @@ class GetCachedMap extends \sammo\BaseAPI public function getRequiredSessionMode(): int { - return static::NO_SESSION; + return static::DUMMY_SESSION; } public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag) diff --git a/hwe/sammo/API/Global/GetConst.php b/hwe/sammo/API/Global/GetConst.php index 970cf14a..e1913101 100644 --- a/hwe/sammo/API/Global/GetConst.php +++ b/hwe/sammo/API/Global/GetConst.php @@ -32,7 +32,7 @@ class GetConst extends \sammo\BaseAPI public function getRequiredSessionMode(): int { - return static::REQ_LOGIN | static::REQ_READ_ONLY; + return static::DUMMY_SESSION; } public function findLastModified(): ?int diff --git a/src/sammo/API/Login/LoginByID.php b/src/sammo/API/Login/LoginByID.php index 3e4ed269..a71519bf 100644 --- a/src/sammo/API/Login/LoginByID.php +++ b/src/sammo/API/Login/LoginByID.php @@ -32,7 +32,7 @@ class LoginByID extends \sammo\BaseAPI public function getRequiredSessionMode(): int { - return BaseAPI::NO_SESSION; + return BaseAPI::NO_LOGIN; } public function scrubToken(int $userID) diff --git a/src/sammo/API/Login/LoginByToken.php b/src/sammo/API/Login/LoginByToken.php index cc3593b1..af8a9333 100644 --- a/src/sammo/API/Login/LoginByToken.php +++ b/src/sammo/API/Login/LoginByToken.php @@ -17,7 +17,7 @@ class LoginByToken extends LoginByID public function getRequiredSessionMode(): int { - return \sammo\BaseAPI::NO_SESSION; //XXX: Token 때문에 엄밀히는 NO_SESSION이 아님 + return \sammo\BaseAPI::NO_LOGIN; } public function validateArgs(): ?string diff --git a/src/sammo/API/Login/ReqNonce.php b/src/sammo/API/Login/ReqNonce.php index 1b4d24bf..4c04fa7e 100644 --- a/src/sammo/API/Login/ReqNonce.php +++ b/src/sammo/API/Login/ReqNonce.php @@ -15,7 +15,7 @@ use sammo\Validator; class ReqNonce extends BaseAPI{ public function getRequiredSessionMode(): int { - return \sammo\BaseAPI::NO_SESSION; + return \sammo\BaseAPI::NO_LOGIN; } public function validateArgs(): ?string diff --git a/src/sammo/APIHelper.php b/src/sammo/APIHelper.php index 6f90af2e..c73f46d9 100644 --- a/src/sammo/APIHelper.php +++ b/src/sammo/APIHelper.php @@ -45,15 +45,15 @@ class APIHelper } $sessionMode = $obj->getRequiredSessionMode(); - if ($sessionMode === BaseAPI::NO_SESSION) { - $session = Session::getInstance(); //XXX: NoSession이면 진짜 NoSession이어야..? + if ($sessionMode === BaseAPI::DUMMY_SESSION) { + $session = new DummySession(); } else { if ($sessionMode & BaseAPI::REQ_GAME_LOGIN) { $session = Session::requireGameLogin(); } else if ($sessionMode & BaseAPI::REQ_LOGIN) { $session = Session::requireLogin(); } else { - Json::dieWithReason("올바르지 않은 SessionMode: {$sessionMode}"); + $session = Session::getInstance(); } if ($sessionMode & BaseAPI::REQ_READ_ONLY) { diff --git a/src/sammo/BaseAPI.php b/src/sammo/BaseAPI.php index d4919b4d..59a7d21e 100644 --- a/src/sammo/BaseAPI.php +++ b/src/sammo/BaseAPI.php @@ -4,7 +4,8 @@ namespace sammo; abstract class BaseAPI { - const NO_SESSION = 0; + const DUMMY_SESSION = -1; + const NO_LOGIN = 0; const REQ_LOGIN = 1; const REQ_GAME_LOGIN = 2; const REQ_READ_ONLY = 4;