39 lines
1001 B
PHP
39 lines
1001 B
PHP
<?php
|
|
|
|
namespace App\Filters;
|
|
|
|
use App\Models\RememberTokenModel;
|
|
use CodeIgniter\Filters\FilterInterface;
|
|
use CodeIgniter\HTTP\RequestInterface;
|
|
use CodeIgniter\HTTP\ResponseInterface;
|
|
|
|
/**
|
|
* Chroni trasy: brak sesji logged_in -> przekierowanie na /login.
|
|
*/
|
|
class AuthFilter implements FilterInterface
|
|
{
|
|
public function before(RequestInterface $request, $arguments = null)
|
|
{
|
|
if (session()->get('logged_in')) {
|
|
return;
|
|
}
|
|
|
|
$token = (string) $request->getCookie('remember_token');
|
|
if ($token !== '' && (new RememberTokenModel())->verifyToken($token)) {
|
|
session()->set([
|
|
'logged_in' => true,
|
|
'user_email' => (string) env('user_email'),
|
|
]);
|
|
|
|
return;
|
|
}
|
|
|
|
return redirect()->to('/login')->deleteCookie('remember_token', '', '/');
|
|
}
|
|
|
|
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
|
|
{
|
|
// brak
|
|
}
|
|
}
|