<?php
use Firebase\JWT\JWT;
function is_login($role = null, $user = null, $jwt = null)
{
/** @var qbuilder $db */
$db = new qbuilder();
$gunakanJWT = JWT_AUTH;
if(!empty($jwt))
$gunakanJWT = $jwt;
if (!$gunakanJWT)
$userdata = sessiondata('login'); //sessiondata('login')
else {
$token = isset($_POST['_token']) ? $_POST['_token'] : null;
list($isLogin, $data) = verify_token($token);
}
if (!empty($userdata) && SYNC_DATAUSER) {
$db->select('users.username, anggota.*');
$db->where('username', $userdata['username']);
$db->from('users');
$db->join('anggota', 'users.anggota = anggota.id');
$u = $db->results();
if (count($u) > 1 || empty($u))
return false;
else
set_userdata('login', $u[0]);
$userdata = get_userdata('login');
}
if (empty($role) && empty($user)) {
if ($gunakanJWT)
return $isLogin;
else
return !empty($userdata);
} elseif (!empty($userdata) && !empty($role) && empty($user)) {
if ($gunakanJWT)
return $data['role'] == $role;
elseif (!JWT_AUTH)
return $userdata['role'] == $role;
} elseif (!empty($userdata) && empty($role) && !empty($user)) {
if ($gunakanJWT)
$data['username'] == $user;
else
return $userdata['username'] == $user;
} elseif (!empty($userdata) && !empty($role) && !empty($user)) {
if ($gunakanJWT)
return $data['username'] == $user && $data['role'] == $role;
else
return $userdata['username'] == $user && $userdata['role'] == $role;
}
}
function loginTryCount(){
}
function verify_token($token){
$token_gen = new Token();
if(empty($token))
return[false, []];
$data = $token_gen->decode($token, 'login');
if(!$data)
return [false, []];
elseif($data->login_at < waktu())
return [false, []];
return [true, $data];
}
function token_register_checker($token)
{
if (empty($token))
return['message' => 'Token kosong', 'type' => false];
$db = new qbuilder();
$db->select('*');
$db->from('token_registrasi');
$db->where('id', $token);
$results = $db->results();
if (empty($results))
return['message' => 'Token registrasi yang anda masukkan tidak terdaftar', 'type' => false];
if (count($results) > 1)
return['message' => 'Token registrasi yang anda masukkan tidak valid', 'type' => false];
$results = $results[0];
if (strtotime($results['expired']) < time())
return['message' => 'Token registrasi yang anda masukkan sudah expired', 'type' => false];
return ['message' => null, 'type' => true];
}
|