ตัวอย่างอย่างง่ายในการตรวจสอบว่าเป็น User หรือ Admin โดยเราจะอิงกับตาราง users ที่เราได้สร้างใว้แล้วในหัวข้อนี้ Laravel 5.4 การใช้งาน Registration ,Login ,Authentication ,Password Resets
1 2 3 4 5 6 7 8 9 |
/** * Check user is admin? * * @return 1 or null */ public function isAdmin() { return $this->is_admin; // this looks for an is_admin column in your users table } |
1 |
php artisan make:middleware AuthAdministrator |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Auth; class AuthAdministrator { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next, $guard = null) { if ( Auth::check() && Auth::user()->isAdmin() ) { return $next($request); } return redirect('/not_permitted_to_execute_this_operation');//หากไม่ใช่ Admin ให้ Redirect ไปที่ URL นี้ } } |
1 2 3 4 5 6 7 8 9 |
protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'admin' => \App\Http\Middleware\AuthAdministrator::class, //เพิ่มบรรทัดนี้เข้ามา ]; |
1 2 3 4 5 6 7 |
Route::group(['prefix' => 'admin', 'middleware' => array('auth','admin'), 'namespace' => 'Admin'], function (){ Route::get('/', function() { return View('admin.dashboard'); }); }); |
อ้างอิง : https://laracasts.com/discuss/channels/laravel/user-admin-authentication
ป้ายกำกับ:laravel