Skip to content

About Auth

Manual Auth Authentication ( Login / Register )

————————- View

<div class="navbar bg-slate-600">
<div class="flex-1">
<a class="btn btn-ghost normal-case text-white text-xl">daisyUI</a>
</div>
<div class="flex-none gap-2">
{{-- <div class="form-control">
<input type="text" placeholder="Search" class="input input-bordered" />
</div> --}}
@if (Auth::check())
<div class="dropdown dropdown-end">
<label tabindex="0" class="btn btn-ghost btn-circle avatar">
<div class="w-10 rounded-full">
<img src="https://placeimg.com/80/80/people" />
</div>
</label>

<ul tabindex="0" class="mt-3 p-2 shadow menu menu-compact dropdown-content text-white bg-slate-500 rounded-box w-52">
<li>
<a class="justify-between">
Profile
<span class="badge">New</span>
</a>
</li>
<li><a>Settings</a></li>
<form action="/logout" method="POST">
@csrf
<li>
<button type="submit">Logout &nbsp; <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-door-exit" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M13 12v.01"></path>
<path d="M3 21h18"></path>
<path d="M5 21v-16a2 2 0 0 1 2 -2h7.5m2.5 10.5v7.5"></path>
<path d="M14 7h7m-3 -3l3 3l-3 3"></path>
</svg></button>
</li>
</form>
</ul>
</div>
@else
<a href="/login" class="font-semibold text-white px-6">Login</a>
@endif
</div>
</div>

————————- Controller Auth

public function index() //index
{
$judul = 'Login';
return view('login', compact('judul'));
}

public function authLogin(Request $request) //logout
{
$request->validate([
'email' => 'required|email',
'password' => 'required|min:4'
]);
if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
$request->session()->regenerate();
return redirect()->intended('/dashboard');
}
return back()->with('loginFail', 'Maaf Login gagal!');

}

public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/login');
}

————————- Route

Route::get('/login', [LoginController::class, 'index'])
->middleware('guest')->name('login');
(penengah akses) (nama Route login)

Route::post('/login', [LoginController::class, 'authLogin']);
Route::post('/logout', [LoginController::class, 'logout']);


Route::get('/dashboard', [UserController::class, 'index'])
->middleware('auth');

Route::get('/useradd', [UserController::class, 'create'])
->middleware('auth');

Route::post('/usersave', [UserController::class, 'store']);
Route::get('/useredit/{id}/edit', [UserController::class, 'edit'])
->middleware('auth');

Route::put('/userup/{id}', [UserController::class, 'update']);
Route::delete('/userdelete/{id}', [UserController::class, 'destroy']);

|- Providers
|- RouteServiceProvider.php
-- Default
// public const HOME = '/home';
public const HOME = '/';

Hak Akses Authorization (Gates / policies ) —-

- Middleware
|- superAdmin.php
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class superAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
//(jika tidak Login dan Role Id user Bukan Admin)
if (auth()->guest() || auth()->user()->role_id !== 1){
abort(403);
//Menggugurkan Forbidden
}

return $next($request);
}
}

Nama Route Middleware ubah ke →middleware(’superAdmin’)

Route::get('/user', [UserController::class, 'index'])->middleware('superAdmin');

Hak akses Menu / Fitur

|- Providers
|- AppServiceProvider.php
<?php

namespace App\Providers;

use App\Models\User;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}

/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Gate::define('superAdmin', function (User $user) {
return $user->role_id === 1;
});
}
}

Ini di View Blade

@can('superAdmin') //ini pembatasan Fitur
<div class="dropdown">
<label tabindex="0" class="btn m-1">Dashboard A</label>
<ul tabindex="0" class="dropdown-content menu p-2 shadow bg-base-100 rounded-box w-52">
<li><a>User</a></li>
<li><a>Cabang</a></li>
</ul>
</div>
@endcan









Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.