2015-11-06 5 views
2

Я использую JWT для RESTful API (Laravel Web-Services для мобильных устройств). Как установить срок действия токена, чтобы никогда не истекать, или что лучше всего подходит для истечения срока действия токена? Поскольку в настоящее время мне нужно получить токен каждый раз, когда истек срок действия токена, может ли кто-нибудь получить эту проблему или лучшее решение для истечения срока действия токена.RESTful API с использованием JWT (токена токена JSON) срок действия токена

+0

Не могли бы вы предоставить более подробную информацию, например, используете Angular.js, что такое прецедент? –

+0

Я не использую Angular.js, просто Jwt-auth используется для restful-api. я просто хочу, чтобы стандартный способ обработки времени истечения токена. потому что мои услуги созданы для мобильных пользователей. –

ответ

2

Нет ничего, чтобы токен никогда не истекал. Однако вы можете продлить срок действия до очень большого промежутка времени, например, 1 год. Это возможно, однако это не рекомендуется для обеспечения безопасности.

Для этого вам необходимо настроить две части, время обновления токена и срок действия токена.

Так config/jwt.php

'refresh_ttl' => 29030400, // Number of minutes in 1 year (12*4*7*24*60*60) 

И когда вы создаете свой маркер, вы можете передать что-то вроде следующего

$tokenId = base64_encode(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM)); 
$issuedAt = Carbon::now()->timestamp; 
$notBefore = $issuedAt;    //Adding 10 seconds 
$expire  = $notBefore + 12*4*7*24*60*60;   // Adding 6 hours 
    /* 
    * Create the token as an array 
    */ 
    $data = [ 
     'iat' => $issuedAt,  // Issued at: time when the token was generated 
     'jti' => $tokenId, // Json Token Id: an unique identifier for the token 
     'iss' => 'https://example.com',  // Issuer 
     'nbf' => $notBefore,  // Not before 
     'exp' => $expire,   // Expire 
     'data' => [     // Data related to the signed user 
     'userId' => Auth::user()->id, // userid from the users table 
     ] 
    ]; 

Теперь ваш маркер никогда не истекает до 1 года. И у вас есть до 1 года, чтобы обновить его. Когда пользователь в следующий раз откроет приложение и аутентифицирует токен, вы можете его обновить. Вы можете обновить токен, как указано в документации here. Я бы рекомендовал пройти через этот ларакаст discussion.

Кроме того, я нашел это question на StackOverflow, я думаю, это поможет.

+0

Могу ли я настроить сообщение с истекшим сроком действия в веб-службе от Authenticacontroller, например, я хочу показать сообщение в массиве с успехом = 0 и msg = токен истек, пожалуйста, войдите снова – Tarzan

Смежные вопросы