mirror of
https://koodu.h-i.works/projects/thebadspace
synced 2025-05-06 14:41:02 -05:00
98 lines
2.7 KiB
PHP
98 lines
2.7 KiB
PHP
|
<?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;
|
||
|
}
|
||
|
}
|