Задать вопрос
@QNA-1976

Как работает контроль авторизованного?

Читаю код один:
namespace MyProject\Controllers;

use MyProject\Models\Users\User;
use MyProject\Services\UsersAuthService;
use MyProject\View\View;

abstract class AbstractController
{
    /** @var View */
    protected $view;

    /** @var User|null */
    protected $user;

    public function __construct()
    {
        $this->user = UsersAuthService::getUserByToken();
        $this->view = new View(__DIR__ . '/../../../templates');
        $this->view->setVar('user', $this->user);
    }
}

роут автора
return [
    '~^users/login~' => [\MyProject\Controllers\UsersController::class, 'login'],
    '~^$~' => [\MyProject\Controllers\MainController::class, 'main']
];

автор логинит пользователя
namespace MyProject\Controllers;

use MyProject\Exceptions\InvalidArgumentException;
use MyProject\Models\Users\User;
use MyProject\Models\Users\UserActivationService;
use MyProject\Services\EmailSender;
use MyProject\Services\UsersAuthService;

class UsersController extends AbstractController
{
    /** @var View */
    private $view;

    public function __construct()
    {
        $this->view = new View(__DIR__ . '/../../../templates');
    }

    public function login()
{
    if (!empty($_POST)) {
        try {
            $user = User::login($_POST);
            UsersAuthService::createToken($user);
            header('Location: /');
            exit();
        } catch (InvalidArgumentException $e) {
            $this->view->renderHtml('users/login.php', ['error' => $e->getMessage()]);
            return;
        }
    }

    $this->view->renderHtml('users/login.php');
}
}

сюда попадаем
namespace MyProject\Controllers;

use MyProject\Models\Articles\Article;

class MainController extends AbstractController
{
    public function main()
    {
    }
}

Ну и я залогинился и меня перекинуло по '/' и набираю '/users/login' и куда я попадаю, где тут контроль авторизованного?
  • Вопрос задан
  • 113 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
в данном коде - нигде
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы