ریدارکت بعد از لاگین در لاراول ۸ و Jetstream
برای ایجاد ریدارکت بعد از لاگین کردن در لاراول ۸ به بعد ( استفاده از Jetstream مراحل زیر رو دنبال کنید .
۱ – اول یک پوشه در app/http بسازید به اسم مثلا Responses و داخل اون هم یک فایل بسازید به اسم LoginResponse . داخل این فایل کد هارو به شکل زیر قرار بدید و هر ریدارکت رو هم مشخص کنید :
<?php
namespace App\Http\Responses;
use Illuminate\Support\Facades\Auth;
use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract;
class LoginResponse implements LoginResponseContract
{
publicfunctiontoResponse($request)
{
$user_id = Auth::user()->id;
$user=\App\Models\Role_User::where('user_id',$user_id)->first();
if($user->role_id == 1){
$roleurl = '/admin';
}elseif($user->role_id == 3){
$roleurl = '/seller';
}else{
$roleurl = '/';
}
return$request->wantsJson()
? response()->json(['two_factor' => false])
: redirect($roleurl);
}
}
public function boot()
{
$this->configurePermissions();
Jetstream::deleteUsersUsing(DeleteUser::class);
// register new LoginResponse
$this->app->singleton(
\Laravel\Fortify\Contracts\LoginResponse::class,
\App\Http\Responses\LoginResponse::class
);
}
در صورت استفاده از ورود دو مرحله ای به جای \Laravel\Fortify\Contracts\LoginResponse::class, از \Laravel\Fortify\Contracts\LoginResponse::class, استفاده کنید .