Как увеличить время jwt? Версия JWT: "tymon/jwt-auth": "^1.0.0-rc.2" Laravel 5.7

Как продлить срок действия токена? У меня есть функция с истекшим временем, но она работает неправильно.

    protected function respondWithToken($token)
    {
        return response()->json([
            'token' => $token,
            'token_type' => 'bearer',
            'expires_in' => auth()->factory()->getTTL() * 464465353454316000,
            'user' => auth()->user()
        ]);
    }
}

Срок действия токена истекает очень быстро.

'expires_in' => auth()->factory()->getTTL() * 464465353454316000 //this line not work property. Token expired early

Эгад, откуда у тебя этот номер?

Alex Howansky 18.03.2019 14:31

ставлю вручную. Но по умолчанию *60

Alex Al 18.03.2019 14:33

У вас не возникает переполнения в этой ситуации? Почему бы не просто 'expires_in' => 60 * 60 * 24 * 7// 1 week?

Justinas 18.03.2019 14:33

@Justinas Это сработает? 'expires_in' => auth()->factory()->getTTL() * 60 * 60 * 24 * 7 ?

Alex Al 18.03.2019 14:36
auth()->factory()->getTTL() предположительно возвращает количество минут, в течение которых должен работать токен, а * 60 преобразует его в секунды. Какова ценность auth()->factory()->getTTL() в вашем случае?
Alex Howansky 18.03.2019 14:37

максимальный целочисленный размер для 32-битной системы равен 147483647, возможно, в этом заключается (часть) вашей проблемы

online Thomas 18.03.2019 14:38

@Thomas Я установил 'expires_in' => auth()->factory()->getTTL() * 60 * 60 * 24 * 17 Это будет 17 недель, и в ответ "expires_in": 88128000, это нормально?

Alex Al 18.03.2019 14:40

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

online Thomas 18.03.2019 14:47

Проблема с этой версией jwt заключается в том, что у меня нет файла jwt в папке конфигурации, и я не могу редактировать его в папке конфигурации. Вопрос простой, как я могу расширить токен времени?

Alex Al 18.03.2019 14:49

@AlexAl Вы пробовали опубликовать папку конфигурации? php artisan vendor:publish --provider = "Tymon\JWTAuth\Providers\LaravelServiceProvider"

Clément Baconnier 18.03.2019 15:16

@cbaconnier Это проблема, которую мне нужно установить в config/jwt 'ttl' => env('JWT_TTL', TIME),

Alex Al 18.03.2019 15:36

Я не понимаю, в чем твоя проблема. config/jwt.phpдоступен на 1.0.0-rc.2 После того, как вы публиковать файл, вы можете установить свой срок жизни

Clément Baconnier 18.03.2019 15:45

Теперь все хорошо Спасибо :)

Alex Al 18.03.2019 15:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
13
2 647
3

Ответы 3

Опубликуйте файл конфигурации на своем терминале php artisan vendor:publish --provider = "Tymon\JWTAuth\Providers\LaravelServiceProvider" Откройте config/jwt.php установите ttl на желаемые минуты, по умолчанию 60 мин.

Да это правда. @cbaconnier дает ответ на мой вопрос.

Alex Al 18.03.2019 23:02
'expires_in' => auth()->factory()->getTTL() * 60000

Если вы это сделаете, ваш токен будет действителен в течение 1 дня.

Попробуйте это, это работает для меня:

use JWTAuth;
...
            'expires_in' => JWTAuth::factory()->getTTL() * 24,

Другие вопросы по теме