当前位置: 首页 > 知识库问答 >
问题:

如何在Lumen 6x中实现默认Laravel重置密码

弘浩博
2023-03-14

我是Laravel/Lumen框架的新手,我正在尝试复制Laravel的默认重置密码特性https://laravel.com/docs/5.7/passwords 我的流明计划。然而,当我发布到sumbit电子邮件endpoint时,我偶然发现了这个错误。

遇到错误{"消息":"目标类[auth.password]不存在."}

我的路线$router-

方法

    public function postEmail(Request $request)
    {
        return $this->sendResetLinkEmail($request);
    }
    /**
     * Send a reset link to the given user.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function sendResetLinkEmail(Request $request)
    {
        // We will send the password reset link to this user. Once we have attempted
        // to send the link, we will examine the response then see the message we
        // need to show to the user. Finally, we'll send out a proper response.
        // dd($request->all());
        $response = $this->broker()->sendResetLink(
            $request->only('email')
        );

        return $response == Password::RESET_LINK_SENT
                        ? response()->json(true)
                        : response()->json(false);
    }

并且它使用这个类使用light\Support\Facades\Password;

我认为这个错误是由这个方法引起的

protected static function getFacadeAccessor()
    {
        return 'auth.password';
    }
}

我看到这个getFacadeAccesor返回字符串是在namespace\Foundation中注册的;

但我在Lumen供应商文件夹中找不到此文件。有解决办法吗?非常感谢。


共有1个答案

魏宏邈
2023-03-14

您可以尝试在引导/app.php中注册服务提供商:

...
// $app->register(App\Providers\EventServiceProvider::class);
$app->register(Illuminate\Auth\Passwords\PasswordResetServiceProvider::class);

此服务提供商为auth.password添加绑定:

protected function registerPasswordBroker()
{
    $this->app->singleton('auth.password', function ($app) {
        return new PasswordBrokerManager($app);
    });

    $this->app->bind('auth.password.broker', function ($app) {
        return $app->make('auth.password')->broker();
    });
}

这只是解决了auth.password绑定,您还有其他问题要处理。

您的用户将需要使用illumb\Auth\Passwords\CanResetPassword特性,但也需要使用illumb\Notifications\Notifiable特性,因为未安装该illumb软件包,所以您不会使用该特性。

您必须不使用密码代理的sendResetLink,它在用户上使用通知方法(来自可通知的),并且至少自己构建这部分功能。

不幸的是,如果您开始需要Lumen不附带的Laravel框架(照明包),您将经常使用Laravel框架而不是Lumen。

 类似资料:
  • 我对ActiveMQ非常陌生,希望能在设置tomEE的默认内部ActiveMQ代理方面提供一些帮助。具体来说,任何一本书的样本。xml将非常有用。

  • 本文向大家介绍Linux mysql-5.6如何实现重置root密码,包括了Linux mysql-5.6如何实现重置root密码的使用技巧和注意事项,需要的朋友参考一下 1. 检查mysql服务是否启动,如果启动,关闭mysql服务 运行命令:ps -ef | grep -i mysql 如果开着就运行关闭的命令:service mysqld stop 2.修改mysql的配置文件my.conf

  • 我试图实现以下所示的功能: 这个代码失败了,因为 类DateTime的对象无法转换为字符串 另一个问题是,我觉得应该有更稳健/优雅的方法来解决这个问题。那么,如何在迁移中正确设置默认的值呢?

  • 我有一个Laravel 5.4应用程序,在我的管理区域有一个视图,允许我查看所有用户。 我想创建一个功能,允许我点击后端的一个按钮,自动发送默认的Laravel密码重置功能。 在我看来,我有以下几点: 在链接点击重置密码这当前通过我的路由点击以下功能 我不太熟悉Laravels的默认密码重置功能,因此我可能有点不熟悉,但我遇到以下错误: 传递给Illumb\Auth\Passwords\Passw

  • 问题内容: 我有一个输出非ASCII字符的python脚本。它可以从命令行正常运行(它具有LANG en_US.UTF-8),但是一旦我尝试在Jenkins中运行(从同一shell启动),它就会以ascii终端的典型方式失败: 我尝试在“执行外壳”构建步骤中执行脚本调用,如下所示: 但是,似乎忽略了这一点。将以下内容放入我的python脚本中: 不管我做什么,都给我这个: 那么,有什么能让我强迫詹

  • 问题内容: 我在同一包中有2个班级。这两个类都具有main方法。现在,我想构建一个jar文件。我想建立2个jar文件,这些文件使用不同的主要功能作为默认主要功能。 例如 如何在NetBeans IDE中进行操作? 我找到了答案。您可以在netbeans中轻松地做到这一点:1)右键单击项目>属性>运行>选择类frm并下拉列表。在netbeans中是如此简单。Netbeans摇摇欲坠! 问题答案: 在