Laravel по-русски

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

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

#1 Laravel 6/7/8/9/10 » Получить Bearer из access_token » 29.11.2020 01:50:39

NNovosad
Ответов: 0

Здравствуйте.
В приложении используется Passport. При авторизации авторизации с фронтенда на бэкенд отправляется POST http://localhost/oauth/token с данными:

client_id: 1
client_secret: "here_client_secret"
grant_type: "password"
password: "here_password"
username: "here_username"

И приходит такой ответ:

access_token: "eyJ..." // тут длинная строка
expires_in: 99999999
refresh_token: "here_refresh_toke"
token_type: "Bearer"

Фронтенд запоминает в куку Bearer токен и отправляет его в остальных запросах за данными.

Сейчас же нужно реализовать функционал чтобы войти супер админом можно было под разными клиентам. Пароля клиентов нет и поэтому использовать /oauth/token не получится.

Я через модель User получаю id из таблицы oauth_access_tokens:

$token = $user->token()->id;

Но этот токен(80 кол-во символов) сильно отличается от Bearer токена (999 кол-во символов) и через него запросы за данными не работают.
Может быть я не совсем корректно понимаю как работает oauth 2 но подскажите пожалуйста как знаю access token получить из него Bearer token?

Заранее спасибо!

#2 Re: Laravel 6/7/8/9/10 » Работа с очередью в супервизоре » 01.10.2020 15:05:55

Не вышло. В таблице jobs вижу что queue=default и в payload вижу листенер в котором задавал имя очереди следующим образом:

    public function queue(QueueManager $handler, $method, $arguments)
    {
        $handler->push($method, $arguments, 'custom_name_queue');
    }

#3 Laravel 6/7/8/9/10 » Работа с очередью в супервизоре » 29.09.2020 17:32:42

NNovosad
Ответов: 2

Здравствуйте.
Сейчас все очереди выполняются через супервизор:

[program:worker]
process_name=%(program_name)s_%(process_num)02d
command=php /app/artisan queue:work --sleep=3 --tries=3 --timeout=1200 --daemon
autostart=true
autorestart=true
numprocs=3
user=worker
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0

Нужно чтобы одна из очередей выполнялась отдельно. Делаю следующее:
Для листенера указываю имя очереди как здесь.

И добавляю новый программный раздел в супервизоре:

[program:new-program]
process_name=%(program_name)s_%(process_num)02d
command=php /app/artisan queue:work --queue=notifications --sleep=3 --tries=3 --timeout=1200 --daemon
autostart=true
autorestart=true
numprocs=3
user=worker
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0

Подскажите пожалуйста с супервизором. Как исключить очередь notifications чтобы она не выполнялась в программном разделе worker и правильно написана ли команда для запуска очереди notifications в программном разделе new-program?

Заранее спасибо!

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