我正在寻找一个很好的教程或建议,关于如何在基于 laravel 8 fortify 没有 jetstream 的角色进行身份验证后重定向。我找到了一个说要在 App\Http\Responses\loginresponse.php 中创建一个新的 LoginResonse.php,但我不确定在哪里注册这个新响应,因为我使用的教程说要在 Jetstreamserviceprovider 中进行,但是我没有使用 Jetstream。有任何想法吗?
问问题
49 次
1 回答
0
您将希望在 中注册您的自定义LoginResponse
,FortifyServiceProvider
特别是boot
方法。
public function boot()
{
$this->app->singleton(
\Laravel\Fortify\Contracts\LoginResponse::class,
\App\Http\Responses\LoginResponse::class
);
}
这会将您的自定义注册LoginResponse
到 Laravel IoC 服务容器,并通知 Laravel 提供您的LoginResponse
to 方法,这些方法需要实现LoginResponse
from的对象实例Fortify
。
在您的自定义LoginResponse
和toResponse
方法中,您可以执行您需要的任何逻辑。例如;
public function toResponse($request)
{
if ($request->wantsJson()) {
return response()->json(['two_factor' => false]);
}
if (Auth::user()->hasRole('admin') {
return redirect(route('admin.index'));
}
}
于 2021-06-16T07:50:41.327 回答