No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
16 Hrs
28 Min
10 Seg

Login

24/25
Recursos

Para evitar que todo el contenido de la aplicación sea público, es necesario utilizar un sistema de autentificación de los usuarios. Para esto tenemos muchos mecanismos en Laravel supremamente sencillos de utilizar.

  • PHP artisan nos ofrece make:auth que es una estructura para hacer un login y registro básicos con las vistas y las rutas.
    (Si el comando arriba no te funciona es porque las versiones más recientes de Laravel ha deprecado este comando, pero puedes utilizar este: )
composer require laravel/ui
php artisan ui vue --auth
  • Al agregar la línea $this->middleware(‘auth’); tenemos el controlador protegido, lo que quiere decir que no puede ser accedido si el usuario no está logueado.

Aportes 39

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para los que no les funcionó el comando make:auth en la nueva version de Laravel 6:

  • Instalar node.js de: https://nodejs.org/es/download/
    Luego de instalar node.js, escribimos los siguientes comandos en consola:
  • composer require laravel/ui --dev
  • php artisan ui vue --auth
  • npm install && npm run dev
    Finalmente, debemos escribir: php artisan ui:auth
    Nota: se deben escribir los comandos en consola, pero dentro de la carpeta del proyecto.

Si vez este cursos en 2020 e instalaste Laravel 6.0 el comando make:auth ya no existe ahora debe realizar los siguiente comando

composer require laravel/ui --dev

php artisan ui vue --auth

Laravel crea la pantalla de autenticación usando un scalford que cuenta con vue

Para los que nos sale el error Command “make:auth” is not defined de la reciente actualización de Laravel 6.0

Hice esto, espero les funcione

composer require laravel/ui --dev
php artisan ui vue --auth
npm install && npm run dev

Para los que están utilizando Laravel 6.0 en adelante !
–> EL comando make:auth , ya no funciona.
–>Pueden utilizar :
1. composer require laravel/ui
2.php artisan ui vue --auth

Reto cumplido.
Cada reporte se asocia con un usuario en el sistema.

Cuando se envía por correo electrónico, aparece un informe detallada del reporte enviado.

Para los que deseen, creé autorización de acciones por políticas. Para evitar que un usuario pueda ver, modificar o eliminar un reporte de otro usuario. Les comparto mi enlace del proyecto en GitHub.

Click aquí

Si no se quiere instalar el auth con vue se puede hacer de esta manera con boostrap como en el curso.

composer require laravel/ui --dev

Despues se ejecutan estos dos comandos seguidos uno tras otro

php artisan ui:auth

php artisan ui:controllers

Una vez realizado esto nos creara el view app.blade.php en resources/layouts

Tenemos que modificarlo para añadir la carga de los ficheros css y js de boostrap poniendo lo siguiente en las secciones de Scripts y Styles

<!-- Scripts -->
    <script src="{{ asset('js/app.js') }}" defer></script>
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>

...

    <!-- Styles -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">```


Con esto tendremos el sistema igual que el de la clase y no hara falta vue para que podamos trastear sin miedo a confusion :D

Scaffolding:

El término hace referencia a una estructura de rápida configuración para tu app o proyecto.

Si tienen Windows 10 y Laravel 7, les recomiendo leer el siguiente comentario, donde esta el paso a paso de como hacerlo, ya que make:auth ya no viene en Laravel 7.
https://platzi.com/comentario/945629/

Dios bendiga Code generation con scaffold, en cualquier framework es un amor .net, laravel, ruby and rails, etc.

En mi caso para restringir el acceso únicamente a usuarios registrados tuve que agregar el middleware desde las rutas:

Route::resource('/expense-report', 'ExpenseReportController')->middleware('auth');

Laravel 5.7

Genial el framework Laravel 😃

Laravel es Genial!!!

Es increíble lo fácil que es hacer un sistema de autenticación usando Laravel xD Efectivamente el comando make:auth ya no funciona pero en el curso anterior lo hacen con la nueva forma, me encanta Laravel ❤️

Menuda maravilla! 😄

Utilidades para quienes lo toman en 2020.

  1. Comandos necesarios para la interfaz de auth ( no existe ‘make:auth’ ahora):

     `composer require laravel/ui `
     `npm install && npm run dev `
     `php artisanui vue --auth`
    
  2. Otra cosa importante que considerar es el cache, si es que alguno se percato que cambiando el nombre de la app en .env no funcionaba utilice en siguiente comando en consola:

php artisan config:cache

Excelente por la autogeneracion de la interfaz y logica de login con artisan
Excelente Laravel!!

Si tengo distintos tipos de usuarios como hago? utilizo politicas?

Compartir por aqui un pequeno hack, en dado caso que la ruta no este protegida desde el controlador mediante el middleware.
.
A partir de la plantilla principal que se este usando en blade, se puede forzar a que el usuario logeado exista, de lo contrario siempre pedira el login:

@if(!Auth::user())
	<script>window.location = "{{ route('login') }}";</script>
	<?php exit; ?>
@endif

Esta clase la vi para recordar los viejos tiempos, jajaj.
.
Pero esto cambio del cielo a la tierra en la ultima version (Laravel 9). El juguete para crear la estructura de login se llama Breeze. Y puede ser combinado con blade, react o next.js. Ademas ahora viene por defecto integrado con tailwind.
Laravel Starter kits

esa fue de las cosas q me hicieron amar laravel jejeje

si instalas una version anterior de laravel en mi caso la 7 hay que inidicarle la version del ui

composer require laravel/ui:^2.4

No me gustó nada este vídeo, no hace bien los llamados del CSS en el auth, nunca lo especifica

Para los que no les carga el css de las paginas es por el vue pueden usar:

npm i vue-loader

Si hacen el proyecto en la version 6 del framework en adelante, tendrian que seguir estos pasos:
Authentication - Laravel 6:

El laravel/uipaquete de Laravel proporciona una forma rápida de estructurar todas las rutas y vistas que necesita para la autenticación usando algunos comandos simples:

Ejecutar en la consola:
composer require laravel/ui "^1.0" --dev

Luego ejecutar el siguiente comando:
php artisan ui vue --auth

Este comando debe usarse en aplicaciones nuevas e instalará una vista de diseño, vistas de registro e inicio de sesión, así como rutas para todos los puntos finales de autenticación. Un HomeControllerTambién se generará para manejar las solicitudes de acceso a post-tablero de su aplicación.

el correo aun no me llega a mi email personal :’(

Alguien me puede ayudar con este error

cuando le doy submit a un new expense me sale eso error y no me redirecciona a la ruta del expense creado y si lo corro como local con php artisan serve si me funciona, pero ya en el servidor de heroku me sale ese error.

Alguien puede aclararme un poco esta linea?
$this->authorizeResource(ExpenseReport::class, ‘expense_report’);

para autorizar el recurso, entiendo que se le pasa la class a llamar que es ExpenseReport que lo llama en el show del controlador ExpenseReportController pero no entiendo el nombre que corresponde a la variable id, porque es expense_report y en vez de expense_reports?

Si la url es expense_reports/6 en la cual el id del reporte es 6 .

Para finalizar, la cereza en el pastel… Espectacular !

Tengo la siguiente inquietud: Estoy realizando el ejercicio en Laravel 5.6, y como bien sabemos Laravel 5.6 excluyó el AuthController, y el tema del login y del logout lo maneja por medio de la carpeta Foundations, motivo por el cual no se podría realizar un logueado supervisado por el tipo de usuario (Por ejemplo: un tipo que solo puede crear los reportes, otro que solo puede consultarlos, etc)… La aplicación siempre queda “estancada” cuando se ingresa con un determinado tipo de usuario que tiene restricciones a determinados módulos, siempre se va a quedar estancado en una pantalla de inicio, y cuando se trata de hacer el logout por medio de la URL, siempre se sigue quedando estancado en la página de inicio, “condenado” a que nunca pueda salir de ahí…Y ni decir cuando se trata de ingresar por la URL con la opcion /login: nunca puedo acceder al login ¿Me podrían decir como se puede solucionar este problema en 5.6, para hacer que se pueda aplicar la validación por el tipo de usuario? Quedo atento. Gracias

Yo tenia Laravel 16.6.0 y ya no existe make:auth, pero con la documentación https://laravel.com/docs/6.x/authentication

encontre estos 2 comandos

composer require laravel/ui "^1.0" --dev

php artisan ui vue --auth

y listo problema arreglado

Para los que tengan versión de Laravel 6 en adelante es necesario que ejecuten los siguientes comandos:

composer require laravel/ui
php artisan ui vue --auth

Después la consola ter pide que ejecutes los siguiente, para que carguen los css de las vistas

npm install && npm run dev

Desafortudamante en este proyecto me aparecieron errores al ejecutar este ultimo comando(que es necesario) que no puede encontrar solución. Por los tanto les recomiendo que crean un nuevo proyecto Laravel y hacer todo este proceso desde el principio para evitar futuros problemas

woooooow excelente clase, muy buen profesor, muchas gracias 😄

Que bien Hector!

Hola buen día, ya logré asociar los reportes al usuario que está autenticado de la siguiente manera:

0- Cree una migración para agregar una nueva columna a la tabla expense_report:: report_user_id, donde guardará el id del usuario que crea el reporte.

1- En la vista de Create New Expense Report, agregué una columna tipo hidden que guarda el id del usuario que está logueado,

<input type="hidden" class="form-control" name="report_user_id" id="report_user_id" value="{{ Auth::user()->id }}">

eso viajá en el Request y se guarda desde el controlador de ExpenseReportController.

$ValidData= $request->validate([
            'title'=>'required|min:10',
            'report_user_id'=>'required|integer'
        ]);

        $report = new ExpenseReport();
        $report->title=$ValidData['title'];
      $report->report_user_id=$ValidData['report_user_id'];
        $report->save();

3- Luego en la consulta a la base de datos, cuando vamos por los Expense Reports, lo filtro por la nueva columna report_user_id con el id del usuario que está logueado y eso es todo:

return view('expenseReport.index',[
            'expenseReports'=> ExpenseReport::all()->where('report_user_id',Auth::user()->id)
        ]);

Espero esté bien y les sirva de algo.

Saludos

Estoy usando laravel 8 pero no extien el comando make:auth, qu eprocede ?

si me quiero loguear con mi numero de documento en vez de correo que tendria que hacer? pd: ya intente modificando controlador modelo y vista pero me tira error asi que volvi al principio algun tutorial?

si no te cambia el nombre de la app_name usa en consola:

php artisan config:cache

y se limpiara el cache

Cuando tomé el curso Laravel ya iba por la versión 8.1 y no había artisan make:auth, si alguien necesita esto fue lo que hice,

Tomando como base esta documentación https://laravel.com/docs/7.x/authentication

cree un nuevo controlador siguiendo los mismos procedimientos de antes** php artisan make:controller LoginController** con este código en su interior (a tener en cuenta que las lineas que estan comentadas las puse en el tinker para crear rápidamente un usuario para probar)

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    public function index()
    {
        /*
        $user = new User();
        $user->name = "admin";
        $user->email = "admin@arturgeek.com";
        $user->password = Hash::make('123456');
        $user->save()
        */
        return view("login.index");
    }

    public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');
        if (Auth::attempt($credentials)) {
            // Authentication passed...
            return redirect( "/expense_reports/");
        }
    }

    public function logout()
    {
        Auth::logout();
        return redirect( "/");
    }
}

Creo que no sobra poner mi estructura en routes

Route::get( "/" , [ 'as' => 'login' , 'uses' => 'App\Http\Controllers\LoginController@index' ] );
Route::post( "/login" , [ 'as' => 'login' , 'uses' => 'App\Http\Controllers\LoginController@authenticate' ] );
Route::get( "/logout" , [ 'as' => 'login' , 'uses' => 'App\Http\Controllers\LoginController@logout' ] );

Cree una nueva carpeta en views donde puse index.blade.php, con el siguiente contenido, en este punto importante agregar el {{ csrf_field() }} ya que de no hacerlo salta un error 419 expired

@extends(‘layouts.base’)
@section(‘content’)
<div class=“row”>
<div class=“offset-4 col-4”>
<form action=“login” method=“POST”>
{{ csrf_field() }}
<div class=“form-group”>
<label for=“email”>Email</label>
<input
type="email"
class="form-control"
id="email"
name=“email"
placeholder=“Type your email"
value={{ old(“email”) }}”
/>
</div>
<div class=“form-group”>
<label for=“password”>Password</label>
<input
type="password"
class="form-control"
id="password"
name="password"
placeholder=“Type your password”
/>
</div>
<button type=“Submit” class=“btn btn-primary”>Login</button>
</form>
</div>
</div>
@endsection

Finalmente en el base.blade.php agregué lo siguiente para dar la opción de cerrar sesión

@auth
<a href="{{ url(“logout”) }}">Logout</a>
@endauth

Espero les sirva.