Fixed login/logout issue
This commit is contained in:
@@ -14,12 +14,6 @@ use Defuse\Crypto\Key;
|
||||
|
||||
class Home
|
||||
{
|
||||
// public $model;
|
||||
//
|
||||
// public function __construct()
|
||||
// {
|
||||
// $this->model = new Access();
|
||||
// }
|
||||
|
||||
/* Routes */
|
||||
public function index()
|
||||
@@ -30,11 +24,6 @@ class Home
|
||||
|
||||
public function login($args = [])
|
||||
{
|
||||
// if (Session::exists('userid')) {
|
||||
// Session::flash('info', 'Anda telah masuk');
|
||||
// Redirect::to('/');
|
||||
// die();
|
||||
// }
|
||||
|
||||
// Login
|
||||
if ($args) {
|
||||
@@ -105,6 +94,7 @@ class Home
|
||||
} else {
|
||||
$this->delete();
|
||||
}
|
||||
|
||||
session_destroy();
|
||||
header('X-Token: ');
|
||||
setcookie('signal', '', time()-3600);
|
||||
@@ -203,44 +193,25 @@ class Home
|
||||
|
||||
public function delete($id = '')
|
||||
{
|
||||
// if (Session::exists('userid') == false) {
|
||||
// throw new \Exception("Bad request but thrown as 404", 404);
|
||||
// }
|
||||
// $client = ClientSession::fetch([
|
||||
//
|
||||
// ])
|
||||
// $userid = Session::get('userid');
|
||||
//
|
||||
// $user = Access::showAll([
|
||||
// ['id', '=', $userid]
|
||||
// ]);
|
||||
// $max_user = $user['max_user'] + 1;
|
||||
//
|
||||
// if (Access::update(
|
||||
// [
|
||||
// 'max_user' => $max_user
|
||||
// ],
|
||||
// $userid
|
||||
// ) != true) {
|
||||
// throw new \Exception("Bad request", 400);
|
||||
// }
|
||||
// return true;
|
||||
|
||||
|
||||
if ($id) {
|
||||
$uid = $id;
|
||||
} elseif (isset($_SERVER['HTTP_X_TOKEN'])) {
|
||||
$token = Token::fetch($_SERVER['HTTP_X_TOKEN']);
|
||||
if ($token == '') {
|
||||
throw new \Exception("Token invalid");
|
||||
}
|
||||
$uid = $token['uid'];
|
||||
} elseif (isset($_SERVER['HTTP_X_QUERY'])) {
|
||||
// if ($id) {
|
||||
// $uid = $id;
|
||||
// } elseif (isset($_SERVER['HTTP_X_TOKEN'])) {
|
||||
// $token = Token::fetch($_SERVER['HTTP_X_TOKEN']);
|
||||
// if ($token == '') {
|
||||
// throw new \Exception("Token invalid");
|
||||
// }
|
||||
// $uid = $token['uid'];
|
||||
// } elseif (isset($_SERVER['HTTP_X_QUERY'])) {
|
||||
$query_string = $_SERVER['HTTP_X_QUERY'];
|
||||
$exploded = explode('&', $query_string);
|
||||
$uid = $exploded[1];
|
||||
}
|
||||
ClientSession::remove($uid);
|
||||
$uid = explode('=', $uid);
|
||||
$uid = $uid[1];
|
||||
// }
|
||||
|
||||
$ip = isset($_SERVER['HTTP_X_FORWADED_FOR']) ? $_SERVER['HTTP_X_FORWADED_FOR'] : $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
ClientSession::remove($ip, $uid);
|
||||
Access::update(['flag' => 0], $uid);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -75,14 +75,15 @@ class ClientSession
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function remove($id)
|
||||
public static function remove($ip, $id)
|
||||
{
|
||||
$sql = "DELETE FROM `client_session` WHERE `uid` = ?";
|
||||
$sql = "DELETE FROM `client_session` WHERE `ip_address` = ? AND `uid` = ?";
|
||||
|
||||
try {
|
||||
$db = static::connectDB();
|
||||
$query = $db->prepare($sql);
|
||||
$query->bindValue(1, $id);
|
||||
$query->bindValue(1, $ip);
|
||||
$query->bindValue(2, $id);
|
||||
$query->execute();
|
||||
|
||||
$result = self::fetch(['uid' => $id]);
|
||||
|
||||
Reference in New Issue
Block a user