로그인, 로그아웃시 member_log에 기록 남김
This commit is contained in:
+11
-2
@@ -5,12 +5,21 @@ require_once('_common.php');
|
|||||||
|
|
||||||
$session = Session::requireLogin();
|
$session = Session::requireLogin();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 외부 파라미터
|
// 외부 파라미터
|
||||||
|
|
||||||
|
RootDB::db()->insert('member_log',[
|
||||||
|
'member_no'=>$session->userID,
|
||||||
|
'action_type'=>'logout',
|
||||||
|
'action'=>Json::encode([
|
||||||
|
'ip'=>Util::get_client_ip(true)
|
||||||
|
])
|
||||||
|
]);
|
||||||
|
|
||||||
|
$session->access_token = null;
|
||||||
$session->logout();
|
$session->logout();
|
||||||
unset($_SESSION['access_token']);
|
$session->setReadOnly();
|
||||||
session_write_close();
|
|
||||||
setcookie("hello", "", time()-3600);
|
setcookie("hello", "", time()-3600);
|
||||||
|
|
||||||
Json::die([
|
Json::die([
|
||||||
|
|||||||
+15
-4
@@ -4,7 +4,7 @@ namespace sammo;
|
|||||||
require_once('_common.php');
|
require_once('_common.php');
|
||||||
|
|
||||||
|
|
||||||
|
$RootDB = RootDB::db();
|
||||||
$session = Session::Instance();
|
$session = Session::Instance();
|
||||||
if($session->isLoggedIn()){
|
if($session->isLoggedIn()){
|
||||||
$session->logout();
|
$session->logout();
|
||||||
@@ -20,7 +20,7 @@ if(!$username || !$password){
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$userInfo = RootDB::db()->queryFirstRow(
|
$userInfo = $RootDB->queryFirstRow(
|
||||||
'SELECT `no`, `id`, `name`, `grade`, `delete_after` '.
|
'SELECT `no`, `id`, `name`, `grade`, `delete_after` '.
|
||||||
'from member where id=%s_username AND '.
|
'from member where id=%s_username AND '.
|
||||||
'pw=sha2(concat(salt, %s_password, salt), 512)',[
|
'pw=sha2(concat(salt, %s_password, salt), 512)',[
|
||||||
@@ -35,7 +35,7 @@ if(!$userInfo){
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$canLogin = RootDB::db()->queryFirstField('SELECT `LOGIN` FROM `SYSTEM` WHERE `NO` = 1');
|
$canLogin = $RootDB->queryFirstField('SELECT `LOGIN` FROM `SYSTEM` WHERE `NO` = 1');
|
||||||
if($canLogin != 'Y' && $userInfo['grade'] < 5){
|
if($canLogin != 'Y' && $userInfo['grade'] < 5){
|
||||||
Json::die([
|
Json::die([
|
||||||
'result'=>false,
|
'result'=>false,
|
||||||
@@ -46,7 +46,7 @@ if($canLogin != 'Y' && $userInfo['grade'] < 5){
|
|||||||
$nowDate = TimeUtil::DatetimeNow();
|
$nowDate = TimeUtil::DatetimeNow();
|
||||||
if($userInfo['delete_after']){
|
if($userInfo['delete_after']){
|
||||||
if($userInfo['delete_after'] < $nowDate){
|
if($userInfo['delete_after'] < $nowDate){
|
||||||
RootDB::db()->delete('member', 'no=%i', $userInfo['no']);
|
$RootDB->delete('member', 'no=%i', $userInfo['no']);
|
||||||
Json::die([
|
Json::die([
|
||||||
'result'=>false,
|
'result'=>false,
|
||||||
'reason'=>"기간 만기로 삭제되었습니다. 재 가입을 시도해주세요."
|
'reason'=>"기간 만기로 삭제되었습니다. 재 가입을 시도해주세요."
|
||||||
@@ -61,6 +61,17 @@ if($userInfo['delete_after']){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$RootDB->insert('member_log',[
|
||||||
|
'member_no'=>$userInfo['no'],
|
||||||
|
'action_type'=>'login',
|
||||||
|
'action'=>Json::encode([
|
||||||
|
'ip'=>Util::get_client_ip(true),
|
||||||
|
'type'=>'plain'
|
||||||
|
])
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$session->login($userInfo['no'], $userInfo['id'], $userInfo['grade']);
|
$session->login($userInfo['no'], $userInfo['id'], $userInfo['grade']);
|
||||||
Json::die([
|
Json::die([
|
||||||
'result'=>true,
|
'result'=>true,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ require('_common.php');
|
|||||||
|
|
||||||
use \kakao\Kakao_REST_API_Helper as Kakao_REST_API_Helper;
|
use \kakao\Kakao_REST_API_Helper as Kakao_REST_API_Helper;
|
||||||
|
|
||||||
|
$RootDB = RootDB::db();
|
||||||
$session = Session::Instance();
|
$session = Session::Instance();
|
||||||
if($session->isLoggedIn()){
|
if($session->isLoggedIn()){
|
||||||
$session->logout();
|
$session->logout();
|
||||||
@@ -89,7 +90,7 @@ if(!$email){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$userInfo = RootDB::db()->queryFirstRow(
|
$userInfo = $RootDB->queryFirstRow(
|
||||||
'SELECT `no`, `id`, `name`, `grade`, `delete_after` from member where email=%s',$email);
|
'SELECT `no`, `id`, `name`, `grade`, `delete_after` from member where email=%s',$email);
|
||||||
|
|
||||||
if(!$userInfo){
|
if(!$userInfo){
|
||||||
@@ -105,7 +106,7 @@ if($userInfo['delete_after']){
|
|||||||
if($userInfo['delete_after'] < $nowDate){
|
if($userInfo['delete_after'] < $nowDate){
|
||||||
$restAPI->unlink();
|
$restAPI->unlink();
|
||||||
unset($_SESSION['access_token']);
|
unset($_SESSION['access_token']);
|
||||||
RootDB::db()->delete('member', 'no=%i', $userInfo['no']);
|
$RootDB->delete('member', 'no=%i', $userInfo['no']);
|
||||||
Json::die([
|
Json::die([
|
||||||
'result'=>false,
|
'result'=>false,
|
||||||
'reason'=>"기간 만기로 삭제되었습니다. 재 가입을 시도해주세요."
|
'reason'=>"기간 만기로 삭제되었습니다. 재 가입을 시도해주세요."
|
||||||
@@ -122,6 +123,15 @@ if($userInfo['delete_after']){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$RootDB->insert('member_log',[
|
||||||
|
'member_no'=>$userInfo['no'],
|
||||||
|
'action_type'=>'login',
|
||||||
|
'action'=>Json::encode([
|
||||||
|
'ip'=>Util::get_client_ip(true),
|
||||||
|
'type'=>'kakao'
|
||||||
|
])
|
||||||
|
]);
|
||||||
|
|
||||||
$session->login($userInfo['no'], $userInfo['id'], $userInfo['grade']);
|
$session->login($userInfo['no'], $userInfo['id'], $userInfo['grade']);
|
||||||
Json::die([
|
Json::die([
|
||||||
'result'=>true,
|
'result'=>true,
|
||||||
|
|||||||
@@ -4,6 +4,15 @@ namespace sammo;
|
|||||||
if(!defined('ROOT')){
|
if(!defined('ROOT')){
|
||||||
define('ROOT', '../..');
|
define('ROOT', '../..');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Session Wrapper. 내부적으로 $_SESSION을 이용
|
||||||
|
*
|
||||||
|
* @property int $userID 유저코드
|
||||||
|
* @property string $userName 유저명
|
||||||
|
* @property int $userGrade 유저등급
|
||||||
|
* @property string $ip IP
|
||||||
|
*/
|
||||||
class Session {
|
class Session {
|
||||||
|
|
||||||
const PROTECTED_NAMES = [
|
const PROTECTED_NAMES = [
|
||||||
@@ -15,6 +24,8 @@ class Session {
|
|||||||
'writeClosed'=>true
|
'writeClosed'=>true
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private $writeClosed = false;
|
private $writeClosed = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -99,6 +110,7 @@ class Session {
|
|||||||
$this->set('ip', Util::get_client_ip(true));
|
$this->set('ip', Util::get_client_ip(true));
|
||||||
$this->set('time', time());
|
$this->set('time', time());
|
||||||
$this->set('userGrade', $grade);
|
$this->set('userGrade', $grade);
|
||||||
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function logout() {
|
public function logout() {
|
||||||
@@ -106,6 +118,7 @@ class Session {
|
|||||||
$this->set('userName', null);
|
$this->set('userName', null);
|
||||||
$this->set('userGrade', null);
|
$this->set('userGrade', null);
|
||||||
$this->set('time', time());
|
$this->set('time', time());
|
||||||
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user