【发布时间】:2021-05-26 00:08:08
【问题描述】:
Laravel 的documentation 说:
您可能想知道 Laravel 在调用 Password 门面的 sendResetLink 方法时如何知道如何从应用程序的数据库中检索用户记录。 Laravel 密码代理利用您的身份验证系统的“用户提供者”来检索数据库记录。密码代理使用的用户提供程序在 config/auth.php 配置文件的密码配置数组中配置。要了解有关编写自定义用户提供程序的更多信息,请参阅身份验证文档
但是如何在我的自定义包packages/custom-packages/foo/src/routes/api.php 中设置我的自定义密码代理users:foo 以供Password::sendResetLink 使用?
Route::post('forgot-password', function (Request $request) {
$request->validate(['email' => 'required|email|exists:foo.users,email']);
$status = Password::sendResetLink(
$request->only('email')
);
return $status === Password::RESET_LINK_SENT
? response()->json(['status' => __($status)])
: response()->json(['email' => __($status)]);
});
下面是我的config/auth.php:
...
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
'throttle' => 60,
],
'users:foo' => [
'provider' => 'users:foo',
'table' => 'foo.password_resets',
'expire' => 60,
'throttle' => 60,
]
]
【问题讨论】: