I'm using Larave10 Jetstream livewire and I wanna modify the login. But my code doesn't work properly what I thought.
This is user database. Id, name:varchar(255), email:varchar(255), usertype:varchar(255), photo:varchar(255), address:varchar(255)
What I wanna do is
- Check usertype 0:user 1:admin
- usertype 0 -> dashboard 1 -> Admin Dashboard
Home Controller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
class HomeController extends Controller
{
public function redirect() {
$usertype = Auth::user()->usertype;
if($usertype == '1') {
return view('admin.home');
} else {
return view('dashboard');
}
}
}
RouteServiceProvider.php
class RouteServiceProvider extends ServiceProvider
{
public const HOME = '/redirect';
public function boot(): void
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));
Route::middleware('web')
->group(base_path('routes/web.php'));
});
}
}
Web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;
Route::middleware([
'auth:sanctum',
config('jetstream.auth_session'),
'verified',
])->group(function () {
Route::get('/dashboard', function () {
return view('dashboard');
})->name('dashboard');
});
Route::get('/redirect', [HomeController::class, 'redirect']);
Where should I modify ?
You should check
RedirectIfAuthenticated.phpFirst add
dashboardsuffixRouteServiceProvider.php
RedirectIfAuthenticated.php
This will redirect to https://localhost/dashboard if usertype === 1 else it will be to https://localhost/home. Redirection happens when you login
This is because of middlelware
RedirectIfAuthenticatedwas added inapp\Http\Kernel.phpapp\Http\Kernel.php