如何在 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 中设置的环境变量

如何在 Laravel Lumen 8 中设置响应的 cookie

如何在 JWT Header 中设置 JWT 类型

如何在 KONGO 中设置 JWT 身份验证

如何在nestjs中设置更多“jwt”AuthGuard?

如何在 iOS 5.1 的 uiSplitViewController 中设置 barButtonItems?