问题描述
我知道可以通过在 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。我只希望前端中的忘记密码表单发送电子邮件和域。
解决方法
不确定这是否是最好的方法,但是当我发布问题后,我发现这是一个可行的解决方案:
ResetPassword::createUrlUsing(function ($user,string $token) {
return $this->app->request->headers->get('origin').'/reset-password?token='.$token;
});