You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中temporarySignedRoute()使用遇403错误求助

问题分析与解决

你的问题根源在于临时签名路由的过期时间写法错误,now()->hours(1)并不是给当前时间增加1小时,而是把当前时间的小时数直接设置为1,这会导致生成的路由大概率已经过期,所以访问时返回403。

正确写法

把生成临时路由的代码改成:

$url = URL::temporarySignedRoute('forgot-password.email.sent', now()->addHours(1), ['email' => $email]);

错误原因说明

  • now()->hours(1) 是Carbon的时间设置方法,作用是将当前时间的小时字段强制设为1,比如现在是下午4点,执行后时间会变成当天凌晨1点,这个时间早于当前时间,路由生成后直接过期,自然触发403。
  • now()->addHours(1) 才是正确的"向后添加1小时"的方法,会把过期时间设置为当前时间往后推1小时,符合你的需求。

你也可以打印生成的$url,查看其中的expires参数对应的时间戳,确认是否在当前时间之后,就能直观验证问题。

内容的提问来源于stack exchange,提问作者Hvel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:45:42