Fixed login/logout issue

This commit is contained in:
2017-10-25 15:35:56 +07:00
parent 5e73adada1
commit 0c56440363
8 changed files with 123 additions and 96 deletions

View File

@@ -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;
}