我知道可以通过在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
$请求传递给createUrlUsing
函数。这样做的主要目的是避免在我的API中对前端URL进行硬编码。我只想让我前端的忘记密码表单发送电子邮件和域。
不确定这是否是最好的方法,但当我发布问题时,我发现这是一个有效的解决方案:
ResetPassword::createUrlUsing(function ($user, string $token) {
return $this->app->request->headers->get('origin').'/reset-password?token='.$token;
});