【发布时间】:2021-04-13 13:17:39
【问题描述】:
背景故事
我已经开发了一个 Laravel 应用程序大约一个月了。在开发过程中,我只使用谷歌浏览器来测试应用程序。该项目使用 Laravel mustverify 来验证用户的电子邮件。这在谷歌浏览器中完美无缺,但是,当我使用 safari 切换到我的 MacBook 时,事情变得很糟糕。
问题
当我从应用程序收到邮件到我的邮件客户端时,我通常只需单击下面显示的“验证电子邮件地址”链接。但是,这在 Safari 中不起作用。通常,我作为经过验证的用户(在谷歌浏览器中)被发送到用户面板,但在 Safari 中,我被重定向到登录页面(未验证或“登录”),就好像会话不存在一样Safari 浏览器。
那么我尝试了什么?
- 在我的 Mac 上尝试其他浏览器:已下载 google chrome,运行良好。
- 花了几个小时阅读 Laravel 的 Auth 过程的文档。
我还读到this post 说 Safari 需要“www”。在 url 前面使其理解。但是我如何在 localhost 中实现这一点?
所以现在我与您联系以获取提示、想法或想法。我将在下面列出一些可能相关的信息:
- PHP 版本:7.3.24
- Laravel 版本:8.20.1
- 软件堆栈:LEMP 和 LAMP(同时在不同机器上运行以进行测试)
- Safari 版本:14.0.2
【问题讨论】:
-
您需要登录才能验证您的电子邮件。
-
@miken32 是的,我理解那部分。但是,为什么用户在 chrome 中单击链接时会登录,但在 Safari 中单击链接时却没有?这一定与 Safari 和它管理 cookie 的方式有关吗?用户在注册过程完成后自动登录,至少我是这样理解的。
-
这取决于您的会话持续多长时间、浏览器上的隐私设置等。用户在 Chrome 中单击链接时未登录。他们在点击链接之前已经登录。
-
@miken32 好的,感谢您的意见!你会如何处理这个问题?如果我希望我的用户能够使用 Safari,我想创建一个不需要登录的电子邮件验证系统似乎是唯一的方法?
-
为什么用户无法登录Safari?
标签: php laravel google-chrome session safari