如何在 Laravel 5.1 中设置 JWT Token 的过期时间
Posted
技术标签:
【中文标题】如何在 Laravel 5.1 中设置 JWT Token 的过期时间【英文标题】:How to set expire time of JWT Token in Laravel 5.1 【发布时间】:2015-12-13 19:26:58 【问题描述】:我正在使用 Django、JWT 和 Laravel 5.1 制作身份验证 API。但我不知道如何设置令牌的过期时间以及如何将其从客户端发送到 API(也由 Laravel 5.1 制作)。谁能帮助我,我知道这是一个基本问题,但我试图谷歌但没有任何答案。
谢谢。
【问题讨论】:
【参考方案1】:据我所知,jwt 令牌用于 ajax 请求和 api 开发。如果您在客户端使用 laravel 刀片,那么您不需要使用 jwt。 Laravel 有一个用于 CSRF 令牌和身份验证的内置服务。
laravel.com/docs/master/routing#csrf-protection
但是你仍然需要使用 jwt,阅读这个教程:
Token-Based Authentication for AngularJS and Laravel Apps
【讨论】:
这应该是一个评论!顺便说一句,我的客户也是由 laravel 5.1 制作的,所以我不知道如何检查它。 不,我没有,我使用 Laravel API 中的 JWT 发送到客户端。我现在在我的网站上使用 csrf 令牌,但我不知道如何在 API 端为 JWT 设置过期时间【参考方案2】:JWT 支持许多保留声明。其中之一是“exp”。您使用此名称和时间戳对声明进行编码作为值:
$key = "example_key";
$token = array(
"sample_key" => "sample_value",
"exp" => 1356999524, // expiration timestamp
);
$jwt = JWT::encode($token, $key);
延伸阅读:https://www.rfc-editor.org/rfc/rfc7519
【讨论】:
【参考方案3】:改变值
'ttl' => 60, //Defaults to 1 hour
在你的项目/config/jwt.php中
这是在 Laravel 5.2 和 JWT 0.5 中。
【讨论】:
以上是关于如何在 Laravel 5.1 中设置 JWT Token 的过期时间的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 5.1 配置文件中读取 Vhosts 中设置的环境变量