<?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]; 
} 
 
 |