Laravel 生成一个10分钟有效的URL 如何获得剩余的有效时间呢?

用 URL::temporarySignedRoute 生成一个10分钟内有效的链接
hasValidSignature 用来判断是否有效期内
但是我想获得剩余的有效时间 返回给前端做一个给用户看的倒计时器,请问怎么获取这个剩余时间呢?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
nff93

直接拿query里的 expires 参数对比就行了,用户没法改这个参数的值(改了就进不了那个路由了,你可以试试)

2年前 评论

首先,在生成URL时,可以使用Laravel的Carbon类来获取当前时间并添加10分钟,然后将其作为URL的有效期限。

当用户访问URL时,可以再次使用Carbon类来获取当前时间,并将其与URL的有效期限进行比较,以确定剩余的有效时间。

以下是示例代码:

// 生成有效期限为10分钟的URL use Carbon\Carbon;

$url = URL::temporarySignedRoute('route.name', Carbon::now()->addMinutes(10));

// 在访问URL时,获取剩余的有效时间 
$current_time = Carbon::now();
$expiration_time = $request->route()->expiration;

// $remaining_time 即为剩余的有效时间(以秒为单位)
$remaining_time = $current_time->diffInSeconds($current_time>diffInSeconds($expiration_time);
2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!