繁体   English   中英

路线:检查会话是否在Laravel中存在

[英]Routes: Check if session exists in Laravel

因此,在我的LoginController.php,我为下面的不同post request variables启动了一个会话,该会话代码位于auth的身份验证函数内。

 protected function authenticated(Request $request, User $user){
     $request->session()->put('param1',$param1);
     $request->session()->put('param2',$param2);
     $request->session()->put('param3',$param3);
     .....
 }

我可以像这样在不同的控制器中轻松访问这些会话

$request->session()->get('param1')

并且在注销触发时也放置了此代码。

session()->flush();

但是如果这些session existsnot session exists我也需要保护自己的route

我想做的是,如果会话不存在,则不允许用户不访问这些路由web.php

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

Route::get('/pay', 'PayController@index');
Route::post('pay/getReceipt', 'PayController@getReceipt')->name('getReceipt');
....

});

创建一个中间件,检查这些会话参数是否存在,然后在其中包装路由。

public function handle($request, Closure $next)
{
    if (Session::has('your_params')) {
        return $next($request);
    }

    return redirect()->back();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM