2016-06-03 3 views
0

У меня возникла проблема с тем, что я хочу добавить переменную в сеанс после входа в систему (я использую Laravel 5 и его auth на artisan make:auth. Это выглядит так: user->login->give_him_a_key->logout->delete_key. Я делаю middleware для этого, но Я понимаю, что не могу сделать middleware запускать только один раз, когда пользователь делает логин, затем я иду в файл AuthenticateUser.php и добавляю свой код в функцию login. Мой учитель сказал, что это не хорошо, потому что я меняю код laravel. попытаться сделать это, не изменяя код laravel.Сделать заявку после входа в систему

Я попытался, но не могу найти, как поймать $request после входа пользователя в систему и запускать его только один раз. Мне нужно руководствоваться.

ответ

1
<? php 

namespace App\ Http\ Middleware; 

use Closure; 

class AfterMiddleware { 
    public 

    function handle($request, Closure $next) { 
    $response = $next($request); 
    $login_route = "segement1/segement2.."; 
    $logout_route = "segement1/segement2.."; 

    if ($request - > is($login_route) && !$request - > session() - > has('key')) { 
     $request - > session() - > put('key', 'value'); 
    } 

    if ($request - > is($logout_route) && $request - > session() - > has('key')) { 
     $request - > session() - > forget('key'); 
    } 

    return $response; 
    } 
} 

Изменения маршруты в соответствии с приложением

+0

спасибо за идею я попробую это, кстати жаль мой последний ответ –

+0

я нахожу другое решение, которое переопределение проверки подлинности и методы выхода из системы в AuthController. p/s: использование laravel 5. –

Смежные вопросы