Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 27.03.2023 22:40:41

Как авторизоваться с помощью api_token?

В файле .env прописан APP_KEY

APP_NAME=Lumen
APP_ENV=local
APP_KEY=0Z#xV2KKNBX25*32QMh0DB2HsmI8LfCi
APP_DEBUG=true
APP_URL=http://localhost
APP_TIMEZONE=UTC

в файле app/Providers/AuthServiceProvider.php есть метод boot() в котором берётся api_token

    public function boot()
    {
        // Here you may define how you wish users to be authenticated for your Lumen
        // application. The callback which receives the incoming request instance
        // should return either a User instance or null. You're free to obtain
        // the User instance via an API token or any other method necessary.

        $this->app['auth']->viaRequest('api', function ($request) {
            if ($request->input('api_token')) {

                Log::info("тест буут");

                return User::where('api_token', $request->input('api_token'))->first();
            }
        });

    }

Как мне им воспользоваться в контролёре app/Http/Controllers/AuthorController.php ?

Мне нужно посмотреть пришёл ли вместе с post или get запросом APP_KEY и в зависимости от этого продолжить выполнение метода или вернут 403 ошибку если APP_KEY не пришёл.

Что мне нужно написать?
(в справке я ничего не увидел по этому вопросу)

Не в сети

#2 28.03.2023 10:41:07

Re: Как авторизоваться с помощью api_token?

Мне нужно посмотреть пришёл ли вместе с post или get запросом APP_KEY и в зависимости от этого продолжить выполнение метода или вернут 403 ошибку если APP_KEY не пришёл.

API_KEY не так работает. Ты путаешь ключ и токен. Ключ используется скриптами для шифрования или подписывания какой-то информации. Используется для создания токенов доступа. Буквально сам ключ не передается никуда!

Советую делать по инструкции из официальной документации. Разделы Authentication, Authorization


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 28.03.2023 10:47:58

Re: Как авторизоваться с помощью api_token?

Код, который ты цитируешь, "в котором берётся api_token" smile на самом деле служит для аутентификации по токену. То есть когда правильный токен присутствует в запросе, то в программе будет доступен "текущий пользователь". Вот что там происходит!

Надо полагать, теперь тебе в контроллере надо читать этого юзера, возможно проверять его права доступа и принимать решение давать или не давать. Сам токен тебе уже больше нигде не нужен.

Как мне им воспользоваться в контролёре app/Http/Controllers/AuthorController.php ?

как в документации написано:

$user = Auth::user();
или
$user = $request->user();

Изменено artoodetoo (28.03.2023 10:56:25)


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела