Laravel 10 UI Auth ----------------------------------------------------------------------- composer create-project "laravel/laravel:^10.0" project-name composer require laravel/ui php artisan ui bootstrap --auth npm install npm run dev npm install --save-dev vite laravel-vite-plugin npm run build Google Auth With Getstrem ----------------------------------------------------------------------- composer create-project laravel/laravel google_login composer require laravel/jetstream php artisan jetstream:install livewire npm install npm run dev composer require laravel/socialite $table->string('google_id')->nullable(); php artisan migrate php artisan make:controller GoogleController app/Models/User.php 'datetime', ]; protected $appends = [ 'profile_photo_url', ]; } https://console.cloud.google.com/apis/dashboard config/services.php using any app -> Credentials -> +Create -> 0Auth client ID -> Web Application -> + ADD URI [http://localhost:8000] + ADD URI [http://localhost:8000/auth/google/callback] CREATE return [ .... 'google' => [ 'client_id' => '456067358213-dpg9jf939o5lds2c06m4pdl68sldbrqp.ARMANapps.googleusercontent.com', 'client_secret' => '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fnKRv', 'redirect' => 'http://localhost:8000/auth/google/callback', ], ] app/Http/routes.php use App\Http\Controllers\GoogleController; Route::get('auth/google', [GoogleController::class, 'redirectToGoogle']); Route::get('auth/google/callback', [GoogleController::class, 'handleGoogleCallback']); redirect(); } public function handleGoogleCallback() { try { $user = Socialite::driver('google')->user(); $finduser = User::where('google_id', $user->id)->first(); if($finduser){ Auth::login($finduser); return redirect()->intended('dashboard'); }else{ $newUser = User::create([ 'name' => $user->name, 'email' => $user->email, 'google_id'=> $user->id, 'password' => encrypt('123456dummy') ]); Auth::login($newUser); return redirect()->intended('dashboard'); } } catch (Exception $e) { dd($e->getMessage()); } } } resources/views/auth/login.blade.php
@if (session('status'))
{{ session('status') }}
@endif
@csrf
{{ __('Remember me') }}
@if (Route::has('password.request'))
{{ __('Forgot your password?') }}
@endif
{{ __('Login') }}
----------------------------------------------------------------------- BREEZE SINGLE AUTH ----------------------------------------------------------------------- composer create-project laravel/laravel auth database config -> .end -> got to work_place -> php artisan migrate composer require laravel/breeze --dev php artisan breeze:install npm install npm run dev php artisan serve ----------------------------------------------------------------------- BREEZE MULTI AUTH ----------------------------------------------------------------------- composer create-project laravel/laravel auth database config -> .end $table->string('type')->default('user'); -> got to work_place -> php artisan migrate composer require laravel/breeze --dev php artisan breeze:install npm install npm run dev php artisan serve RouteServiceProvider.php '/home' php artisan make:controller HomeController use Illuminate\Support\Facades\Auth; use App\Models\User; public function index(){ if(Auth::id()){ $type = Auth::user()->type; if($type=='user'){ return view('user_dashboard'); } else if($type=='admin'){ return view('admin_dashboard'); } } else{ return view('welcome'); } } web.php use App\Http\Controllers\HomeController; Route::get('/home',[HomeController::class, 'index'])->middleware(['auth', 'verified']); resources/views/user_dashboard.blade.php resources/views/admin_dashboard.blade.php welcome.blade.php '/home' ----------------------------------------------------------------------- BREEZE TWO AUTH - CUSTOM MIDDLEWARE ----------------------------------------------------------------------- composer create-project laravel/laravel auth database config -> .end database/migration/users $table->string('type')->default(0)->comment('0->User,1->Admin'); -> got to work_place -> php artisan migrate composer require laravel/breeze --dev php artisan breeze:install npm install npm run dev php artisan make:middleware UserAccess app/Http/kernel.php protected $routeMiddleware/$middlewareAliases = [ 'user-access' => \App\Http\Middleware\UserAccess::class, ]; app/Http/Middleware/UserAccess.php use Illuminate\Support\Facades\Auth; public { if(Auth::user()->type == '1'){ return $next($request); }else{ session()->flush(); return redirect()->route('login'); } } app/Providers/RouteServiceProvider.php public const HOME = '/'; route/web.php use App\Http\Controllers\UserController; Route::middleware(['auth'])->group(function(){ Route::get('/user', [UserController::class, 'user_dashboard']); }); Route::middleware(['auth','user-access'])->group(function(){ Route::get('/admin', [UserController::class, 'admin_dashboard']); }); php artisan make:controller UserController { public function user_dashboard(){ return view('user_dashboard'); } public function admin_dashboard(){ return view('admin_dashboard'); } } resources/views/user_dashboard.blade.php resources/views/admin_dashboard.blade.php resources/views/welcome.blade.php @if(Auth::user()->type=='1')
Dashboard
@else
Dashboard
@endif ----------------------------------------------------------------------- UI MULTI AUTH - CUSTOM MIDDLEWARE ----------------------------------------------------------------------- composer create-project laravel/laravel multi_auth database config -> .end database/migration/users $table->string('type')->default(0)->comment('0->User,1->Admin'); -> got to work_place -> php artisan migrate composer require laravel/ui php artisan ui bootstrap --auth npm install npm run dev npm install --save-dev vite laravel-vite-plugin npm run build app/Models/User.php use Illuminate\Database\Eloquent\Casts\Attribute; protected $fillable = [ 'name', 'email', 'password', 'type' ]; protected function type(): Attribute { return new Attribute( get: fn ($value) => ["user", "admin"][$value], ); } php artisan make:middleware UserAccess app/Http/kernel.php protected $routeMiddleware/$middlewareAliases = [ 'user-access' => \App\Http\Middleware\UserAccess::class, ]; app/Http/Middleware/UserAccess.php public function handle(Request $request, Closure $next, $userType): Response { if(auth()->user()->type == $userType){ return $next($request); } return response()->json(['You do not have permission to access for this page.']); /* return response()->view('errors.check-permission'); */ } route/web.php use App\Http\Controllers\HomeController; Route::middleware(['auth','user-access:user'])->group(function(){ Route::get('/user', [HomeController::class, 'user_dashboard']); }); Route::middleware(['auth','user-access:admin'])->group(function(){ Route::get('/admin', [HomeController::class, 'admin_dashboard']); }); HomeController public function user_dashboard(){ return view('user_dashboard'); } public function admin_dashboard(){ return view('admin_dashboard'); } resources/views/user_dashboard.blade.php resources/views/admin_dashboard.blade.php app/Http/Controllers/Auth/LoginController.php use Illuminate\Http\Request; use Illuminate\Http\RedirectResponse; public function login(Request $request): RedirectResponse { $input = $request->all(); $this->validate($request, [ 'email' => 'required|email', 'password' => 'required', ]); if(auth()->attempt(array('email' => $input['email'], 'password' => $input['password']))) { if (auth()->user()->type == 'admin') { return redirect()->to('/admin'); } else{ return redirect()->to('/user'); } }else{ return redirect()->route('login') ->with('error','Email-Address And Password Are Wrong.'); } } resources/views/welcome.blade.php @if(Auth::user()->type=='admin')
Dashboard
@else
Dashboard
@endif app/Providers/RouteServiceProvider.php public const HOME = '/user';