Redireccionar в login, если он не заверен

У меня есть формуляр удостоверения пользователей, которых, если он успешный, сохраняет в переменных сеанса (\Session) id пользователя и id компании, но от случая к случаю, когда сервер закрывает для меня сеанс из-за предела времени, или когда пользователь попробует вводить информацию в компьютер в маршрут, прямо не происходя из-за login, система производит мне ошибку за неимением этих 2 переменных сеанса.

Как я делаю для того, чтобы любой маршрут системы, которая пробует работать, сначала проверил, ли заверен он?, он с Middleware?, поскольку они используются?

1
задан 01.05.2017, 21:41
1 ответ

Действительно, это реализует middleware маршрута, который будет работать в каждом из маршрутов, которые это используют.

В файле routes.php :

Route::group(['middleware' => 'auth'], function () {

    // Las rutas que incluyas aquí pasarán por el middleware 'auth'
    Route::get('editar-usuario', 'UserController@edit');

});

В файле app / HTTP / Kernel.php , где определяются группы middleware (отличный от групп маршрута) и middleware:

<?php

namespace app\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    // ......

    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth'          => Middleware\Authenticate::class,
        // otros middleware
    ];

    // ....
}

Из-за Гєltimo, файл Middleware, помещенного в app/Http/Middleware/Authenticate.php :

<?php

namespace app\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;

class Authenticate
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {

        // si la persona no inició sesión, entonces ....
        if (Auth::guard($guard)->guest()) {

            if ($request->ajax()) {

                return response('Unauthorized.', 401);

            } else {

                // si la persona no inició sesión y no es una solicitud ajax
                // enviar al formulario de ingreso
                return redirect()->guest('entrar');

            }
        }

        return $next($request);
    }
}

Совсем она documentaciГіn middlewares ты находишь ее acГЎ: https://laravel.com/docs/5.2/middleware#registering-middleware

1
ответ дан 24.11.2019, 13:42

Теги

Похожие вопросы