tutorial sistema parte español consumir con autenticación autenticacion laravel rest authentication authorization

español - sistema de autenticación api rest con laravel 5.6 — parte 1



Auth y administración de usuarios en laravel rest api (1)

Estoy escribiendo una API de descanso para una aplicación móvil. No sé cómo autenticar usuarios y administradores en mi aplicación. Tengo una tabla llamada " usuarios " y tengo un campo llamado " isAdmin " que es 0 o 1 . ahora, cuando el administrador envía publicaciones, los usuarios pueden ver las publicaciones. ¿Cómo recomiendas la autenticación para ambos? gracias


Te recomiendo que leas la documentación sobre autenticación en laravel: https://laravel.com/docs/5.5/authentication

Lo que tienes que configurar es lo siguiente:

  • Middleware (qué rutas puede usar el usuario y qué rutas puede usar el administrador)
  • Edite su modelo con una función isAdmin () para determinar si un usuario es usuario o administrador

Ejemplo de un archivo AdminMiddleware - crear por línea de comando: php artisan make: middleware AdminMiddleware

<?php namespace App/Http/Middleware; use Closure; use Auth; class AdminMiddleware { /** * Handle an incoming request. * * @param /Illuminate/Http/Request $request * @param /Closure $next * @return mixed */ public function handle($request, Closure $next) { if(Auth::check() && Auth::user()->isAdmin()){ return $next($request); } else{ return view(''your_view'')->withErrors(''You are not logged in''); } } }

Ejemplo de una función de User Model isAdmin - crear por línea de comando: php artisan make: model User

public function isAdmin(){ if($this->isAdmin == 1){ return true; } else { return false; } }

Ejemplo de su archivo de ruta

// @TODO: Set routes for user and admin here... Route::group([''middleware'' => [''admin'']], function () { // @TODO: Set admin routes here, only admin can use this routes. });

También tienes que editar tu Kernel.php un poco:

protected $routeMiddleware = [ // ... add this line ''admin'' => /App/Http/Middleware/AdminMiddleware::class, ];