重置密码链接Laravel 8中的动态域

Posted

技术标签:

【中文标题】重置密码链接Laravel 8中的动态域【英文标题】:Dynamic domain in reset password link Laravel 8 【发布时间】:2021-06-28 00:46:24 【问题描述】:

我知道密码重置链接可以通过在AuthServiceProvider.php中添加以下函数来自定义

ResetPassword::createUrlUsing(function ($user, string $token) 
     return 'https://example.com/reset-password?token='.$token;
);

这是我的sendResetPassword 函数

public function sendResetPassword(Request $request) 
        $request->validate(['email' => 'required|email']);

        $status = Password::sendResetLink(
            $request->only('email')
        );

        if ($status === Password::RESET_LINK_SENT) 
            return response()->json(['message' => __($status)], 200);
         else 
            return response()->json(['message' => __($status)], 500);
        

现在我想知道是否有办法将域从sendResetPassword $request 传递给createUrlUsing 函数。 这样做的主要目的是避免在我的 API 中对前端 URL 进行硬编码。我只想让我的前端忘记密码表单发送电子邮件和域。

【问题讨论】:

【参考方案1】:

不确定这是否是最好的方法,但我一发布问题就发现这是一个可行的解决方案:

ResetPassword::createUrlUsing(function ($user, string $token) 
     return $this->app->request->headers->get('origin').'/reset-password?token='.$token;
);

【讨论】:

以上是关于重置密码链接Laravel 8中的动态域的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 5 中的队列通过电子邮件发送密码重置链接

无法在 laravel 5.3 中发送密码重置链接?

Laravel 5 邮箱重置密码

如何在 Laravel 5 中更改默认重置密码链接

Laravel 将密码重置链接发送到单独的身份验证保护

在Laravel 5.6中重置密码链接