Files
core/j_login.php
T

79 lines
1.9 KiB
PHP

<?php
namespace sammo;
require(__dir__.'/vendor/autoload.php');
$RootDB = RootDB::db();
$session = Session::getInstance();
if($session->isLoggedIn()){
$session->logout();
}
$username = mb_strtolower(Util::getReq('username'), 'utf-8');
$password = Util::getReq('password');
if(!$username || !$password){
Json::die([
'result'=>false,
'reason'=>'올바르지 않은 입력입니다.'
]);
}
$userInfo = $RootDB->queryFirstRow(
'SELECT `no`, `id`, `name`, `grade`, `delete_after`, `acl` '.
'from member where id=%s_username AND '.
'pw=sha2(concat(salt, %s_password, salt), 512)',[
'username'=>$username,
'password'=>$password
]);
if(!$userInfo){
Json::die([
'result'=>false,
'reason'=>'아이디나 비밀번호가 올바르지 않습니다.'
]);
}
$canLogin = $RootDB->queryFirstField('SELECT `LOGIN` FROM `system` WHERE `NO` = 1');
if($canLogin != 'Y' && $userInfo['grade'] < 5){
Json::die([
'result'=>false,
'reason'=>'현재는 로그인이 금지되어있습니다!'
]);
}
$nowDate = TimeUtil::DatetimeNow();
if($userInfo['delete_after']){
if($userInfo['delete_after'] < $nowDate){
$RootDB->delete('member', 'no=%i', $userInfo['no']);
Json::die([
'result'=>false,
'reason'=>"기간 만기로 삭제되었습니다. 재 가입을 시도해주세요."
]);
}
else{
Json::die([
'result'=>false,
'reason'=>"삭제 요청된 계정입니다.[{$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::decode($userInfo['acl']??'{}'));
Json::die([
'result'=>true,
'reason'=>'로그인 되었습니다.'
]);