Laravel 电子邮件验证 - 强制登录

2024-03-04

安装启用新的内置电子邮件验证后,一切正常(注册后发送电子邮件并单击激活启用帐户)。
但是,我面临着用户必须登录才能进行验证过程的情况。这意味着,如果用户在使用验证链接之前未登录,他将被重定向到登录页面,然后显示/resources/view/auth/verify.blade.php page.

我正在联系社区,看看这是故意的、错误还是我做错了什么?有人遇到同样的情况吗?

我正在设置的网站可以公开访问大多数页面,但仅限于某些页面(目前是用户门户)。我设置了routes/web.php如下:

// Authentication
Auth::routes(['verify' => true]);
Route::group(['middleware' => ['auth', 'verified'], 'as' => 'portal.', 'prefix' => '/portal'], function () {
    Route::get('/', 'PortalController@index');
    Route::get('/profile', 'PortalController@index')->name('profile');
    Route::get('/orders', 'PortalController@index')->name('orders');
});

通过跟踪验证过程,我发现该过程正在强制登录VerificationController通过如下所示的中间件构造函数。

public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('signed')->only('verify');
        $this->middleware('throttle:6,1')->only('verify', 'resend');
    }

通过注释第一行或添加->except('verify'),登录页面未显示,但 Traits 抛出错误VerifiesEmails方法验证如下,因为用户显然没有登录它($request->user()一片空白)。

public function verify(Request $request)
    {
        if ($request->route('id') == $request->user()->getKey() &&
            $request->user()->markEmailAsVerified()) {
            event(new Verified($request->user()));
        }

        return redirect($this->redirectPath())->with('verified', true);
    }

我的问题是,有没有办法让它在不事先登录的情况下工作,或者这就是验证过程在 5.7 中实现的方式吗? ...或者我做错了什么?


有没有办法让它在不事先登录的情况下工作,或者这是验证过程在 5.7 中实现的方式? ...或者我做错了什么?

这就是 Laravel 5.7 中验证过程的实现方式。 Laravel 使用签名 URL 进行验证。 URL 是用一个id参数(id为用户ID),当用户点击验证链接时,会进行3项检查:

  1. 签名有效吗? (signed中间件)
  2. 签名中的用户 ID 是什么?这就是最终要验证的 ID
  3. 当前登录的用户是否具有相同的ID?

您始终可以通过覆盖 VerificationController 中的 verify 方法来删​​除第三个检查,如下所示:

public function verify(Request $request)
{

    $userId = $request->route('id');
    $user = App\User::findOrFail($userId);

    if ($user->markEmailAsVerified()) {
        event(new Verified($user));
    }

    return redirect($this->redirectPath())->with('verified', true);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 电子邮件验证 - 强制登录 的相关文章

  • 在高负载站点中使用 PHP 的策略

    在你回答这个问题之前 我从未开发过任何足够流行的东西来达到高服务器负载 把我当作 叹气 一个刚刚登陆地球的外星人 尽管我了解 PHP 和一些优化技术 我正在开发一个工具PHP如果效果好的话 可以吸引相当多的用户 然而 虽然我完全有能力开发该
  • bash.sh 运行 cron 的权限被拒绝

    如何在这里使用 bash 脚本运行 cron 我做了如下操作 这里有错误 我想知道如何在 ubuntu 中做到这一点 我现在对它感到震惊 bash sh 文件 bin bash cd var www Controller usr bin p
  • 安装失败:无法在 ubuntu 上的 WordPress nginx 中创建目录

    我在本教程的帮助下设置了 WordPress 如何在 ubuntu 18 04 上使用 LEMP 安装 WordPress https www digitalocean com community tutorials how to inst
  • Doctrine 模型的默认排序属性

    我想知道是否有办法声明我的学说模型的默认顺序 e g 我有一个work模型并且它有photos 当我加载作品时 与其关联的所有照片都会加载到 work gt photos 当我显示它们时 它们是按 ID 排序的 在另一个字段上声明默认顺序或
  • 无法使用 javascript 建立与安全 Websocket 服务器的连接

    我的开发环境是这样的 操作系统 微软Windows 10 PHP 框架 Laravel 8 0 PHP 版本 7 4 Websocket 服务器 cboden ratchet 0 4 3 WAMP 服务器 3 2 0 Apache 2 4
  • 使用 PHP 将 HTML 片段包裹在 div 中(并从 HTML 标签生成目录)

    我原来的 HTML 看起来像这样 h1 Page Title h1 h2 Title of segment one h2 img src img jpg alt An image of segment one p Paragraph one
  • str_replace 为数组

    我在使用 PHP 函数时遇到一些问题str replace使用数组时 我有这样的消息 message strtolower L rzzo rwldd ty esp mtdsza d szdepw ty esp opgtw d dple 我正
  • 类外函数

    我只是想告诉你 我是 OOP 的新手 这对我来说相当困难 但这是我的代码 class functions function safe query string string mysql escape string htmlspecialch
  • 在 PHP 中读取“分块”POST 数据

    我试图在发送时使用 Transfer Encoding chunked 从请求中读取 POST 数据 但在收到所有数据之前无法启动脚本 是否可以让 PHP能够在分块请求通过时对其做出反应吗 将 PHP 5 3 8 与 Apache 结合使用
  • php 的 SCORM 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们为一位客户开发了电子学习网站 最近他询问需要 SCORM feed 我不知道我的系统是否与 scr
  • 将行分组在一列上并与其他列形成嵌套子数组

    这是我试图处理的事情 我的数组看起来像这样并且有重复项 products product name gt Adidas1 address gt street 2 product name gt Adidas2 address gt stre
  • PDO 多查询“SQLSTATE[HY000]:一般错误”

    我仍在学习 PDO 所以我可能会错过一些东西 但基本上我正在尝试将一行插入表中 然后选择生成的 id 我不确定它是否喜欢一个 pdo 语句中的两个查询 这是我用来执行 SQL 的代码 public function ExecuteQuery
  • PHP fscanf 与 fgets

    我可以使用读取一行中的整个字符串fgets but fscanf 没有这样做 根据PHP手册 fscanf 根据格式解析文件的输入 功能fscanf 类似于sscanf 但它从与句柄关联的文件中获取输入 并根据指定的格式解释输入 这在文档中
  • Session_set_save_handler 未设置

    我在设置 session set save handler 时遇到问题 我将 php ini 配置为 session handler user 这个简单的测试失败了 Define custom session handler if sess
  • 如何使用多个Auth组件?

    我使用用户模型将身份验证组件配置为 管理页面 但现在 我还想为客户端创建 配置身份验证 我尝试 重写 inialize This is in my ClientsController php public function initiali
  • Niceedit本地上传图片失败

    我是这样称呼编辑的 new nicEditor buttonList bold italic underline upload iconsPath img nicedit png uploadURI http server com inte
  • php平台安装询问我intl扩展,但似乎已经安装

    在 orocrm 安装期间 使用 symfony 2 开发的平台 我收到此错误 Fatal error Uncaught exception Symfony Component Intl Exception MethodArgumentVa
  • 即使浏览器关闭,如何保持 PHP 会话处于活动状态?

    即使用户不小心关闭了浏览器 如何才能保持用户的会话处于活动状态 例如 Facebook 如果您登录他们的网站并关闭选项卡或浏览器 当您再次打开浏览器并访问 Facebook 时 他们会自动检测活动用户 并且不会将您重定向到登录页面 我怎么做
  • Symfony2 / FOSUserBundle - 登录后根据角色重定向

    我想根据用户的角色自定义登录后的重定向 仅供参考 我用symfony 2 8 我创建这个类
  • PHP - While/Else 错误? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有以下

随机推荐

  • 在 Laravel 之外解密加密值

    如何在 Laravel 之外仅使用 PHP 解密已使用 Laravel 4 Encrypt 类加密的字符串 拉拉维尔Encrypter该类使用块大小为 256 位的 Rijndael 进行加密 该加密由 Mcrypt PHP 扩展提供 这E
  • Android 以编程方式拨打电话号码

    我如何dial a number从 Android 应用程序以编程方式 我不想打电话 我知道我可以通过发出意图来做到这一点 new Intent Intent ACTION CALL 我只想将用户带到 Android 拨号提示 其中包含号码
  • 正确使用 mkdir -m -p 和 chown

    我想使用bash脚本创建一个目录 然后同时将模式设置为00755 mkdir p m 00755 dir dir2 这是一起使用它们的正确方法吗 我可以在创建它们时将 chown 命令添加到同一行吗 它有点像这样 install d m 0
  • 使用 FileStream 和这些选项读取文本文件的实际内容 C#

    我需要使用 FileStream 和下面提到的选项在 C 中打开一个文本文件 var fileStream new FileStream filePath FileMode Open FileAccess Read FileShare Re
  • Zeroclipboard 多个元素

    我在代码中创建多个 Zeroclipboard 实例化时遇到问题 每个实例化在调用后都会启动一个弹出窗口 a class xxx href popup url php span FRSDE3RD span a a class xxx hre
  • 开发像 Stackoverflow 一样的聊天 API [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何开始开发聊天 api 就像 stackoverflow 使用的那样 如果它是开源的 我在哪里可以找到它 如果不是 有人可以指导我如
  • ActiveMQ Artemis 前缀为“jms.topic”。到 Spring Boot 客户端上定义的所有主题名称

    我正在使用 ActiveMQ Artemis 2 18 0 和版本 2 5 5spring boot starter artemis对 Spring Boot 客户端的依赖 在我的用例中 客户需要通过主题相互通信 问题是字符串jms top
  • 不理解缺少返回语句

    我是 Java 新手 我正在进行一个小程序练习 并遇到缺少返回语句的错误 有人可以帮忙吗 import java util Scanner class nonstatic1 public static void main String ar
  • PHP 方法链 - 反射?

    是否可以反思方法调用链来确定您处于调用链中的哪个点 至少 是否可以辨别一个方法是否是链中的最后一个调用 instance gt method1 gt method2 gt method3 gt method4 是否可以使用返回对象实例的属性
  • Tensorboard上直方图的含义

    我正在研究 Google Tensorboard 我对直方图的含义感到困惑 我阅读了教程 但我似乎不清楚 如果有人能帮助我弄清楚 Tensorboard 直方图每个轴的含义 我真的很感激 来自 TensorBoard 的示例直方图 我早些时
  • 无法在jupyter笔记本中导入tensorflow_datasets模块

    I am trying tensorflow course from Udacity which uses google colab to write run the code But I want to run the code on m
  • 无法使用 NSRegularExpression(正则表达式模式)提取字符串 - iphone

    我想提取 括号之间的字符串 例如 原始字符串 这是一个测试 获取此字符串 我想在 之间提取字符串 即本例中的 获取此字符串 请在下面找到我的代码 NSMutableString predicateString NSMutableString
  • Android 4.2.2+ 上的叠加状态栏

    我想覆盖 android 状态栏 就我而言 它位于顶部 我不想覆盖或隐藏导航栏 Note 解决方案必须在 Android 4 2 2 上运行 我更喜欢非 root 设备的答案 我搜索了很多 SO 问题和答案 但没有一个适用于 4 2 2 下
  • 用一个变量求大量函数的根

    我正在使用 Python numpy scipy 编写一个小型光线追踪器 表面被建模为二维函数 给出法线平面上方的高度 我将寻找射线和表面之间的交点的问题简化为寻找具有一个变量的函数的根 这些函数是连续且连续可微的 有没有一种方法可以比使用
  • 使用模板删除任何容器

    我有很多代码要删除其中包含指针的向量容器 也就是说 我必须先删除所有指针 然后清除容器 每次我都会手动迭代并删除指针 我知道 stl algorithms for each 为了规避所有这些代码 我创建了一个模板来删除所有具有指针的向量容器
  • 跳转到下一个空白处

    Instead of using w to jump to the beginning of the next word or using e to jump to the end of the next word I want to ha
  • 来自不同线程的触发事件

    在我的主窗口中 Thread A 我开始一个新线程 Thread B 它在用户等待时做了一些工作 如果出现错误或需要用户提供额外信息 线程 B 会触发事件 线程 A 将侦听这些事件 在线程 A 的事件侦听器中 我需要向用户显示对话框消息 我
  • git 如何处理带空格的文件夹名称

    我有一个名为31 Files of oop 当我尝试运行此命令时 git rm rf 31 文件 oop 我收到这个致命错误 致命 pathspec 31 与任何文件都不匹配 我需要如何准备带空格的文件夹名称以便在 git 中使用 尝试这样
  • 如何将动态选择菜单和嵌套属性一起包含在 Rails 中?

    考虑我有三个表用户 国家 地区 州 我有一个添加新用户的页面 当我添加新用户时 我必须在选择框中列出国家 地区 并且在选择国家 地区时 多个选择框应加载该国家 地区的州 我应该能够选择所需的状态 同样 我可以单击添加按钮添加另一个选择框并选
  • Laravel 电子邮件验证 - 强制登录

    安装启用新的内置电子邮件验证后 一切正常 注册后发送电子邮件并单击激活启用帐户 但是 我面临着用户必须登录才能进行验证过程的情况 这意味着 如果用户在使用验证链接之前未登录 他将被重定向到登录页面 然后显示 resources view a