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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
nff93

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

1年前 评论

首先,在生成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);
1年前 评论

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