php - personalizado - Laravel 5 new auth: Obtener usuario actual y cómo implementar roles?
login personalizado laravel (2)
Actualmente estoy experimentando con el nuevo Laravel 5 y obtuve la autenticación para trabajar (registrar / iniciar sesión).
Para obtener el usuario autenticado en mi controlador, actualmente inyecté Guard
en la acción del controlador:
use App/Http/Controllers/Controller;
use Illuminate/Contracts/Auth/Guard;
class ClientController extends Controller {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index(Guard $auth)
{
return view(''client.index'', [''user'' => $auth->user()]);
}
...
Primera pregunta: ¿Es esta la manera recomendada?
Segunda pregunta: ¿Cómo implementaría algún tipo de roles / permisos? Algo como client.edit
, client.add
, ... ¿Larval 5 ofrece algún tipo de conveniencia aquí? ¿Cómo establecería el rol / permiso necesario para una acción de ruta / controlador?
Estoy pensando que podría necesitar escribir mi propio middleware para eso. ¿Alguna sugerencia sobre cómo abordar el problema?
Después de pasar más tiempo en Laravel 5, puedo responder mi propia pregunta:
¿Está inyectando Guard
la manera recomendada? No: si necesita acceder a Auth
en su vista, puede hacerlo así:
@if( Auth::check() )
Current user: {{ Auth::user()->name }}
@endif
Esto usa la fachada de Auth
. Una lista de todas las fachadas disponibles está en config/app.php
bajo aliases:
¿Qué Auth
si necesito Auth
en mi controlador? Inyectar una instancia de Guard
como se muestra en la pregunta funciona, pero no es necesario. Puede usar la fachada Auth
como lo hicimos en la plantilla:
public function index()
{
if(/Auth::check() && /Auth::user()->name === ''Don'') {
// Do something
}
return view(''client.index'');
}
Tenga en cuenta que el /
es necesario antes del nombre de la fachada ya que L5 usa espacios de nombres.
Quiero tener permisos / roles usando el nuevo mecanismo de autenticación en L5: Implementé un módulo de permisos ligero usando el nuevo middleware, se llama Laraguard . Compruébalo en Github y cuéntame lo que piensas: https://github.com/cgrossde/Laraguard
ACTUALIZACIÓN: en aras de la exhaustividad, quiero mencionar dos proyectos más. Proporcionan todo lo que necesita para guardar roles y permisos en el DB y funcionan perfectamente junto con Laraguard o por su cuenta:
Si desea realizar su propia autenticación personalizada, debe conservar el modelo de usuario de Laravel 5 con toda la dependencia. Después de que podrá iniciar sesión con su usuario en su controlador. No olvide poner (use Auth;) después del espacio de nombres de su controlador.