diff --git a/f_install/sql/common_schema.sql b/f_install/sql/common_schema.sql
index 7e09f2a8..973a5b6f 100644
--- a/f_install/sql/common_schema.sql
+++ b/f_install/sql/common_schema.sql
@@ -20,16 +20,18 @@ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `member` (
`NO` INT(11) NOT NULL AUTO_INCREMENT,
`oauth_id` BIGINT(20) NULL DEFAULT NULL,
- `oauth_type` ENUM('NONE','KAKAO') NOT NULL,
`ID` VARCHAR(64) NOT NULL,
`EMAIL` VARCHAR(64) NULL DEFAULT NULL,
+ `oauth_type` ENUM('NONE','KAKAO') NOT NULL,
+ `oauth_info` TEXT NOT NULL DEFAULT '{}',
+ `token_valid_until` DATETIME NULL DEFAULT NULL,
`PW` CHAR(128) NOT NULL,
`salt` CHAR(16) NOT NULL,
`third_use` INT(1) NOT NULL DEFAULT '0',
`NAME` VARCHAR(64) NOT NULL,
`PICTURE` VARCHAR(64) NULL DEFAULT 'default.jpg',
`IMGSVR` INT(1) NULL DEFAULT '0',
- `acl` text NOT NULL DEFAULT '{}' COMMENT 'json',
+ `acl` TEXT NOT NULL DEFAULT '{}' COMMENT 'json',
`GRADE` INT(1) NULL DEFAULT '1',
`REG_NUM` INT(3) NULL DEFAULT '0',
`REG_DATE` DATETIME NOT NULL,
diff --git a/i_entrance/j_get_user_info.php b/i_entrance/j_get_user_info.php
index 757bf350..2c1bb432 100644
--- a/i_entrance/j_get_user_info.php
+++ b/i_entrance/j_get_user_info.php
@@ -9,7 +9,7 @@ $userID = Session::getUserID();
// 외부 파라미터
$db = RootDB::db();
-$member = $db->queryFirstRow('SELECT `id`, `name`, `grade`, `picture`, reg_date, third_use, acl, oauth_type, oauth_info FROM `member` WHERE `NO` = %i', $userID);
+$member = $db->queryFirstRow('SELECT `id`, `name`, `grade`, `picture`, reg_date, third_use, acl, oauth_type, token_valid_until FROM `member` WHERE `NO` = %i', $userID);
if(!$member['picture']){
$picture = ServConfig::getSharedIconPath().'/default.jpg';
@@ -30,8 +30,7 @@ else{
}
}
-$oauthInfo = Json::decode($member['oauth_info'])??[];
-$loginTokenValid = $oauthInfo['OTPValidUntil']??null;
+$tokenValidUntil = $member['token_valid_until'];
if($member['grade'] == 6) {
$grade = '운영자';
@@ -86,6 +85,6 @@ Json::die([
'third_use'=>($member['third_use']!=0),
'acl'=>$acl,
'oauth_type'=>$member['oauth_type'],
- 'login_token_valid'=>$loginTokenValid
+ 'token_valid_until'=>$tokenValidUntil
]);
diff --git a/index.php b/index.php
index 0e161a0c..0e5db2e4 100644
--- a/index.php
+++ b/index.php
@@ -217,7 +217,7 @@ function postOAuthResult(result){
인증 코드가 필요합니다.
카카오톡의 '나와의 채팅'란을 확인해 주세요.
- (별도의 알림[소리, 진동, 숫자]가 발생하지 않습니다.)
+ (별도의 알림[소리, 진동, 숫자]이 발생하지 않습니다.)
diff --git a/j_login.php b/j_login.php
index fb18c875..ac28aa51 100644
--- a/j_login.php
+++ b/j_login.php
@@ -41,7 +41,7 @@ function kakaoOAuthCheck(array $userInfo) : ?array {
$refreshTokenValidUntil = $oauthInfo['refreshTokenValidUntil']??null;
$OTPValue = $oauthInfo['OTPValue']??null;
$OTPTrialUntil = $oauthInfo['OTPTrialUntil']??null;
- $OTPValidUntil = $oauthInfo['OTPValidUntil']??null;
+ $tokenValidUntil = $member['token_valid_until'];
if(!$accessToken || !$refreshToken || !$accessTokenValidUntil || !$refreshTokenValidUntil){
return [false, 'OAuth 정보가 보관되어 있지 않습니다. 카카오 로그인을 수행해 주세요.'];
@@ -79,7 +79,7 @@ function kakaoOAuthCheck(array $userInfo) : ?array {
], 'no=%i', $userInfo['no']);
}
- if($OTPValidUntil && $now <= $OTPValidUntil){
+ if($tokenValidUntil && $now <= $tokenValidUntil){
return null;
}
diff --git a/js/user_info.js b/js/user_info.js
index 0ed86887..8f31836d 100644
--- a/js/user_info.js
+++ b/js/user_info.js
@@ -22,7 +22,7 @@ function fillUserInfo(result){
}
$('#slot_oauth_type').text(result.oauth_type);
if(result.oauth_type != 'NONE'){
- $('#slot_token_valid_until').text(result.login_token_valid);
+ $('#slot_token_valid_until').text(result.token_valid_until);
}
else{
$('#slot_token_valid_until').parent().html('');
diff --git a/oauth_kakao/j_check_OTP.php b/oauth_kakao/j_check_OTP.php
index 7aecc402..bf8b72dc 100644
--- a/oauth_kakao/j_check_OTP.php
+++ b/oauth_kakao/j_check_OTP.php
@@ -78,15 +78,15 @@ if($OTPValue != $otp){
]);
}
-$OTPValidUntil = TimeUtil::DatetimeFromNowDay(10);
+$tokenValidUntil = TimeUtil::DatetimeFromNowDay(10);
$session->setReqOTP(false);
-$oauthInfo['OTPValidUntil'] = $OTPValidUntil;
RootDB::db()->update('member', [
- 'oauth_info'=>Json::encode($oauthInfo)
+ 'oauth_info'=>Json::encode($oauthInfo),
+ 'token_valid_until'=>$tokenValidUntil,
], 'no=%i', $userNo);
Json::die([
'result'=>true,
'reset'=>false,
- 'reason'=>"로그인을 성공했습니다. {$OTPValidUntil}까지 유효합니다."
+ 'reason'=>"로그인을 성공했습니다. {$tokenValidUntil}까지 유효합니다."
]);
\ No newline at end of file
diff --git a/oauth_kakao/j_login_oauth.php b/oauth_kakao/j_login_oauth.php
index cf0200d9..1eb6601d 100644
--- a/oauth_kakao/j_login_oauth.php
+++ b/oauth_kakao/j_login_oauth.php
@@ -117,7 +117,7 @@ if(!$email){
$userInfo = $RootDB->queryFirstRow(
- 'SELECT `no`, `id`, `name`, `grade`, `delete_after`, `acl`, oauth_info from member where email=%s',$email);
+ 'SELECT `no`, `id`, `name`, `grade`, `delete_after`, `acl`, oauth_info, token_valid_until from member where email=%s',$email);
if(!$userInfo){
$restAPI->unlink();
@@ -164,9 +164,9 @@ RootDB::db()->update('member', [
], 'no=%i', $userInfo['no']);
-$OTPValidUntil = $oauthInfo['OTPValidUntil']??null;
+$tokenValidUntil = $userInfo['token_valid_until'];
-if(!$OTPValidUntil || $OTPValidUntil < $now){
+if(!$tokenValidUntil || $tokenValidUntil < $now){
if(!createOTPbyUserNO($userInfo['no'])){
Json::die([
'result'=>false,
diff --git a/oauth_kakao/j_reset_token.php b/oauth_kakao/j_reset_token.php
index d8abaa11..92f6c143 100644
--- a/oauth_kakao/j_reset_token.php
+++ b/oauth_kakao/j_reset_token.php
@@ -12,29 +12,28 @@ $session = Session::requireLogin([
$userID = Session::getUserID();
-$oauthInfo = Json::decode(RootDB::db()->queryFirstField('SELECT oauth_info from member where no=%i',$userID))??[];
-if(!$oauthInfo){
+$tokenValidUntil = RootDB::db()->queryFirstField('SELECT token_valid_until from member where no=%i',$userID);
+
+if(!$tokenValidUntil){
Json::die([
'result'=>false,
'reason'=>'초기화 가능한 로그인 상태가 아닙니다.'
]);
}
-$OTPValidUntil = $oauthInfo['OTPValidUntil']??null;
-
$now = TimeUtil::DatetimeNow();
$expectedDate = TimeUtil::DatetimeFromNowDay(5);
-if($expectedDate <= $OTPValidUntil){
+if($expectedDate <= $tokenValidUntil){
Json::die([
'result'=>false,
'reason'=>'아직 연장 가능하지 않습니다.'
]);
}
-unset($oauthInfo['OTPValidUntil']);
+unset($oauthInfo['tokenValidUntil']);
RootDB::db()->update('member', [
- 'oauth_info'=>Json::encode($oauthInfo)
+ 'token_valid_until'=> null
], 'no=%i', $userID);
$session->logout();