重定向 - laravel 5.2 验证登录超时的中间件redirect后session丢失了?
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 16:51:22
[PHP讨论组]

public function handle($request, Closure $next, $guard = 'manager')

{
    if (!Auth::guard($guard)->check()) {
        return redirect('manager/login');
    }
    if (config('misc.session_timeout_status')) {
        $isLoggedIn = $request->path() != '/manager/logout';
        if (!session('lastActivityTime')) {
            $this->session->put('lastActivityTime', time());
        } elseif (time() - $this->session->get('lastActivityTime') > $this->timeout) {
            debugbar()->info('时间到!'.$this->timeout);
            log::info('时间到!'.$this->timeout);
            $this->session->forget('lastActivityTime');

            $cookie = cookie('intend', $isLoggedIn ? url()->current() : 'manager/');
            $email  = Auth::guard($guard)->user()->email;
            session()->flash('flash_danger', '您自动登出是出于安全原因,因为您' . $this->timeout / 60 . '分钟内没有活动。');
            Auth::guard($guard)->logout();

            return redirect()->to('/manager/login')->withErrors('您自动登出是出于安全原因,因为您' . $this->timeout / 60 . '分钟内没有活动。')->withInput(compact('email'))->withCookie($cookie);
        }
        $isLoggedIn ? $this->session->put('lastActivityTime', time()) : $this->session->forget('lastActivityTime');
    }

    return $next($request);
}

redirect后session或error都没值了,login接收不到数据,路由如下:

Route::group(['namespace' => 'Manager', 'prefix' => 'manager'], function () {

Route::auth();

Route::group([
    'middleware' => ['admin'],
], function () {
    Route::get('/', 'HomeController@index');
    Route::resource('article', 'ArticleController');       
});

});

不知道哪里出问题了。
过去多啦不再A梦
过去多啦不再A梦

全部回复(1)
天蓬老师

中间组件 'middleware' => ['admin'], 造成的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号