forked from devsam/core
로그인, 로그아웃시 member_log에 기록 남김
This commit is contained in:
+11
-2
@@ -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
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user