1
0
mirror of https://koodu.h-i.works/projects/thebadspace synced 2025-05-06 14:41:02 -05:00

98 lines
2.7 KiB
PHP
Raw Normal View History

<?php
// src/Controller/ProductController.php
namespace App\Service;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use App\Entity\Members;
use ReallySimpleJWT\Token;
class Auth
{
private $session;
private $entityManager;
public function __construct(
EntityManagerInterface $entityManager,
RequestStack $requestStack
) {
$this->entityManager = $entityManager;
$this->session = $requestStack->getSession();
$this->secret = '!$ec7eT$l0w*';
}
public function authCheck($email, $password)
{
$response = [];
$member = new Members();
$members = $this->entityManager->getRepository(Members::class);
$member = $members->findOneBy(["email" => $email]);
if (!$member) {
$response = ["status" => false, "message" => "Member Not Found"];
} else {
if (!password_verify($password, $member->getPassword())) {
$response = ["status" => false, "message" => "Check that password"];
} else {
$this->session->set("member", $member);
$secret = $this->secret;
$expiration = time() + 3600;
$token = Token::create(
$member->getMemberId(),
$secret,
$expiration,
"nile_admin"
);
$this->session->set("token", $token);
$response = ["status" => true, "message" => "Welcome Back"];
}
}
return $response;
}
public function logOut()
{
$this->session->set("member", null);
$this->session->set("token", null);
}
public function APIStatus()
{
$response = [];
$verify = Token::validate($this->session->get("token"), $this->secret);
if ($verify) {
$response = [
"status" => true,
"message" => "Token is good",
"token" => $this->session->get("token"),
];
} else {
$response = ["status" => false, "message" => "Bad Token, champ."];
}
return $response;
}
public function status()
{
$response = [];
if ($this->session->get("member")) {
//$member = $this->session->get("member");
$response = [
"status" => true,
"role" => $this->session->get("member")->getRole(),
"token" => $this->session->get("token"),
];
} else {
$response = ["status" => false, "role" => null];
}
return $response;
}
}