為lumen添加session支持


為lumen添加session支持,同時配置全局函數csrf_token可用

 

 首先laravel和lumen框架的版本要一致,我這里版本都是5.4

 

1.復制laravel框架config目錄下的session.php到lumen框架config目錄下

 

2.修改bootstrap目錄下的app.php

添加

//加載配置

$app->configure('session');

 

 //注冊中間件

$app->middleware([
    Illuminate\Session\Middleware\StartSession::class,
    App\Http\Middleware\VerifyCsrfToken::class,
]);

 

 //注冊服務提供者

$app->register(Illuminate\Session\SessionServiceProvider::class);

 

 //添加全局函數csrf_token

3.修改\vendor\laravel\lumen-framework\src\helpers.php


添加(該函數從拷貝自laravel框架下\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php)
if (! function_exists('csrf_token')) {
/**
* Get the CSRF token value.
*
* @return string
*
* @throws \RuntimeException
*/
function csrf_token()
{
    $session = app('session');

    if (isset($session)) {
        return $session->token();
    }

        throw new RuntimeException('Application session store not set.');
    }
}

4.添加文件\app\Http\Middleware\VerifyCsrfToken.php拷貝自laravel
\app\Http\Middleware\VerifyCsrfToken.php

 

5.添加文件\vendor\illuminate\http\Middleware\VerifyCsrfToken.php拷貝自
laravel框架\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php
該文件拷貝過去后需要修改命名空間,因為lumen下命名空間變化了


6.修改\vendor\laravel\lumen-framework\src\Application.php
在方法
registerContainerAliases中添加
'Illuminate\Session\SessionManager'=>'session',別名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM