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,
];