로그인, 로그아웃시 member_log에 기록 남김

This commit is contained in:
2018-03-25 17:19:07 +09:00
parent 13ee593548
commit 503ad43a9e
4 changed files with 51 additions and 8 deletions
+11 -2
View File
@@ -5,12 +5,21 @@ require_once('_common.php');
$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();
unset($_SESSION['access_token']);
session_write_close();
$session->setReadOnly();
setcookie("hello", "", time()-3600);
Json::die([
+15 -4
View File
@@ -4,7 +4,7 @@ namespace sammo;
require_once('_common.php');
$RootDB = RootDB::db();
$session = Session::Instance();
if($session->isLoggedIn()){
$session->logout();
@@ -20,7 +20,7 @@ if(!$username || !$password){
]);
}
$userInfo = RootDB::db()->queryFirstRow(
$userInfo = $RootDB->queryFirstRow(
'SELECT `no`, `id`, `name`, `grade`, `delete_after` '.
'from member where id=%s_username AND '.
'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){
Json::die([
'result'=>false,
@@ -46,7 +46,7 @@ if($canLogin != 'Y' && $userInfo['grade'] < 5){
$nowDate = TimeUtil::DatetimeNow();
if($userInfo['delete_after']){
if($userInfo['delete_after'] < $nowDate){
RootDB::db()->delete('member', 'no=%i', $userInfo['no']);
$RootDB->delete('member', 'no=%i', $userInfo['no']);
Json::die([
'result'=>false,
'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']);
Json::die([
'result'=>true,
+12 -2
View File
@@ -5,6 +5,7 @@ require('_common.php');
use \kakao\Kakao_REST_API_Helper as Kakao_REST_API_Helper;
$RootDB = RootDB::db();
$session = Session::Instance();
if($session->isLoggedIn()){
$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);
if(!$userInfo){
@@ -105,7 +106,7 @@ if($userInfo['delete_after']){
if($userInfo['delete_after'] < $nowDate){
$restAPI->unlink();
unset($_SESSION['access_token']);
RootDB::db()->delete('member', 'no=%i', $userInfo['no']);
$RootDB->delete('member', 'no=%i', $userInfo['no']);
Json::die([
'result'=>false,
'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']);
Json::die([
'result'=>true,
+13
View File
@@ -4,6 +4,15 @@ namespace sammo;
if(!defined('ROOT')){
define('ROOT', '../..');
}
/**
* Session Wrapper. 내부적으로 $_SESSION을 이용
*
* @property int $userID 유저코드
* @property string $userName 유저명
* @property int $userGrade 유저등급
* @property string $ip IP
*/
class Session {
const PROTECTED_NAMES = [
@@ -15,6 +24,8 @@ class Session {
'writeClosed'=>true
];
private $writeClosed = false;
/**
@@ -99,6 +110,7 @@ class Session {
$this->set('ip', Util::get_client_ip(true));
$this->set('time', time());
$this->set('userGrade', $grade);
return $this;
}
public function logout() {
@@ -106,6 +118,7 @@ class Session {
$this->set('userName', null);
$this->set('userGrade', null);
$this->set('time', time());
return $this;
}
/**