Files
2024-09-09 09:00:11 -04:00

101 lines
2.9 KiB
PHP

<?php
namespace App\Controllers;
use CodeIgniter\API\ResponseTrait;
use Firebase\JWT\JWT;
class DigiFiAuth extends BaseController
{
use ResponseTrait;
var $request;
function __construct() {
$this->request = \Config\Services::request();
}
public function index(): string
{
return '';
}
public function verifyGetBkoToken(){
$data = $this->request->getGet();
return $this->verifyBkoToken($data);
}
public function verifyPostBkoToken(){
$data = $this->request->getPost();
return $this->verifyBkoToken($data);
}
private function verifyBkoToken($data){
//$data = $this->request->getGet();
return $this->respond($data, 200);
}
public function startBkoToken()
{
$data = $this->request->getPost();
if ( $data['username'] == '' || $data['pass'] == '' ){
return $this->fail([] , 409);
}
$username = $data['username'];
$pass = $data['pass'];
$sqlC = "SELECT * FROM bko_users WHERE username ='".$username."' AND pass = md5('".$pass."')";
$query = $this->db->query($sqlC);
$resV = $query->getResultArray();
$results = [];
if (count($resV)> 0){
$results = $resV[0];
}
// var_dump($results);
if ( count($results) > 0
&& $results['uid'] != ''
&& $results['updated'] != '' ){
$final_out = $results;
$key = getenv('JWT_SECRET');
$iat = time(); // current timestamp value
$exp = $iat + 3600;
$payload = array(
"iss" => "Issuer of the JWT",
"aud" => "Audience that the JWT",
"sub" => "Backoffice VerifiedT",
"iat" => $iat, //Time the JWT issued at
"exp" => $exp, // Expiration time of token
"user_detail" =>$final_out,
);
$token = JWT::encode($payload, $key, 'HS256');
$response = [
'message' => 'Login was successful',
'call_return' => '100',
'username' => $data['username'],
'token' => $token,
"id" => 1,
"first_name" => $results['firstname'],
"last_name" => $results['lastname'],
"email" => $results['email'],
"email_verified_at" => "2023-07-12T13:39:04.000000Z",
"created_at" => $results['added'],
"updated_at" => $results['updated'],
"api_token" => $token
];
return $this->respond($response, 200);
}
else{
$response = [
'message' => 'Login failed',
'call_return' => '100',
'token' => ''
];
return $this->fail($response , 409);
}
}
}