laravel使用中间件及session验证实例

场景:根据用户登录,后所有类都要验证session。另外比如做一些活动也可以使用中间件,比如活动在11.11开始等,如果没有开始进入等待页或者其他游戏页面。

1、在Http/Middleware/创建一个类,我做的是验证session是否登录,创建checkSession.php

<?php
namespace APP\Http\Middleware;

class CheckSession
{
    // 前置操作
    public function handle($request, \closure $next)
    {
        if( !session()->has($request->userId) || $request->userId == NULL )
        {
            return redirect('text3');
        }

        return $next($request);	// 请求
    }
}

2、在kernel.php进行注册,首先这里注册服务,要明白我们要做什么,我们这里的需求不是全局的,在登录后才执行。
找到 protected $routeMiddleware 这个成员变量,加入 ‘check.session’ => \App\Http\Middleware\CheckSession::class,
这里key自己定义就行,会在写路由的时候使用

3、如何在路由使用

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});


Route::any('text','CsController@text');
Route::any('text3','CsController@text3');

Route::group(['middleware' => ['check.session']], function(){
    Route::any('text1', ['uses' => 'CsController@text1']);
    Route::any('text2', ['uses' => 'CsController@text2']);
});

然后去测试一下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值