邮箱认证章节从邮件中获取链接 url,访问返回 403Forbidden

邮箱认证章节从邮件中获取链接url,访问返回403Forbidden

跟踪发现是在signed 这个middleware 总$request->hasValidSignature() 失败导致的,再具体点就是
hasValidSignature中的
$signature = hash_hmac('sha256', $original, call_user_func($this->keyResolver));

和通知发出去的

邮箱认证章节从邮件中获取链接 url,访问返回 403Forbidden

邮箱认证章节从邮件中获取链接 url,访问返回 403Forbidden

对应打印如下
邮箱认证章节从邮件中获取链接 url,访问返回 403Forbidden

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

兄弟我也遇到这个问题,你试下重新登录,重新发送邮件验证,然后到.log文件里找最末端的验证链接,因为有可能是复制错了之前旧的验证链接

6年前 评论
讨论数量: 7

兄弟我也遇到这个问题,你试下重新登录,重新发送邮件验证,然后到.log文件里找最末端的验证链接,因为有可能是复制错了之前旧的验证链接

6年前 评论

@CharlieSING
我反反复复试验了十几次,都这样, 通过打印我发现 ,就是通知发出去的链接 和 校验的时候计算的链接不同,不同之处在于 校验的时候多个 _url=XXXX ,XXX是 域名/ 后的path的转码,是这个导致的

6年前 评论
Guanjian104 2年前

@kuangbo 看下 新建的EnsureEmailIsVerified 文件,

file
对比下。

6年前 评论

直接点击链接会在默认窗口(跟【点击发送验证邮件页面】不在同一窗口)打开,跟你出现了一样的问题,权限问题怀疑是校验不到是该用户点击的链接。
不直接打开,而是复制链接在【点击发送验证邮邮件页面】的同一各浏览器窗口里打开,验证成功了,可以试一下。
具体出现问题的原因没去深究了额

4年前 评论

同样的问题,是怎么解决的呀

4年前 评论

file
好像是这个验证没通过,跟进去后发现

file

file

打印了一下,第一个箭头是true,第二个箭头返回的false。这个地方不明白怎么回事。

因为是false,就返回错误了。没有进入下一步

Laravel

发送邮件的时候,是用的sha1进行加密

Laravel

比对的时候,又是对链接非签名部分采用sha256加密。

各位是怎么解决的呀??

———————————————分割线———————————–

搞定了,直接从log里面复制出来的链接会多加字符,所以导致不对不通过。

Laravel

这是我直接在浏览器上打印出来的链接地址

Laravel

这是在邮件里的地址,看箭头的地方,都多了【3D】两个字符。

后来的同学如果还是在log里面复制链接的话,一定要注意多生成的字符。

或则,直接在:

Laravel

采用这种方式打印链接出来;

3年前 评论

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