Php Laravel:为每个请求设置cookie
我用了一段时间拉威尔,但我有一个问题。Laravel为每个请求设置cookie。无论用户是否登录 我不认为这是拉威尔的正常行为。用户登录后,我们不需要在每次请求时为他们创建新会话。是吗?那么为什么laravel会为用户发送的每个请求生成新的会话和csrf令牌呢?它还为来宾用户生成这些会话和令牌,这是完全不必要和无用的 我怎样才能防止这种情况 更新: 我使用Laravel5.2和文件作为会话驱动程序 以下是我的路由和中间件示例: 路线:Php Laravel:为每个请求设置cookie,php,laravel,cookies,csrf,setcookie,Php,Laravel,Cookies,Csrf,Setcookie,我用了一段时间拉威尔,但我有一个问题。Laravel为每个请求设置cookie。无论用户是否登录 我不认为这是拉威尔的正常行为。用户登录后,我们不需要在每次请求时为他们创建新会话。是吗?那么为什么laravel会为用户发送的每个请求生成新的会话和csrf令牌呢?它还为来宾用户生成这些会话和令牌,这是完全不必要和无用的 我怎样才能防止这种情况 更新: 我使用Laravel5.2和文件作为会话驱动程序 以下是我的路由和中间件示例: 路线: <?php Route::get('/login'
<?php
Route::get('/login', 'UserController@login');
Route::post('/login', 'UserController@postLogin');
Route::get('/link/{link}', 'HomeController@link');
$router->group(['middleware' => ['auth']], function() {
Route::get('/', 'HomeController@index');
Route::post('/', 'HomeController@postindex');
Route::get('/home', 'HomeController@index');
Route::post('/home', 'HomeController@postindex');
Route::get('user/{username}', 'UserController@user_info');
Route::post('user/{username}', 'UserController@post_user_info');
Route::get('/logout', 'UserController@logout');
});
$router->group(['middleware' => ['auth', 'role:2']], function() {
Route::get('/tools/register', 'UserController@register');
Route::post('/tools/register', 'UserController@postregister');
Route::get('/tools/users', 'AdminController@users');
Route::post('/tools/users', 'AdminController@post_users');
});
Route::controllers([
'password' => 'Auth\PasswordController',
]);
我没有检查,但您的路由可能位于默认的“Web”中间件组中,该组默认具有会话/cookies/csrf
我没有检查,但您的路由可能位于默认的“Web”中间件组中,该组默认具有会话/cookies/csrf
您使用的是哪一版本的laravel?@OliverQueen laravel 5.2我必须编写自己的中间件来解决此问题。您可以向我们展示您的路由和中间件设置吗?@ceejayoz是的。更新了问题:您使用的是哪一版本的laravel?@OliverQueen laravel 5.2我必须编写自己的中间件来解决此问题。您可以向我们展示您的路由和中间件设置吗?@ceejayoz是的。更新了问题My site uses sessions/cookie/csrf。但是在每次请求时设置这些cookie和会话,一次又一次地是非常困难的weird@Sky是否为每个请求设置新ID?Set Cookie
调用应该在每个请求中都存在,但会话ID应该保持不变。@ceejayoz会话和csrf,在每个请求中都会更改,但它们不是不变的。您的laravel会话驱动程序是什么?@Marijanspassenovski是默认的。FileMy站点使用sessions/cookie/csrf。但是在每次请求时设置这些cookie和会话,一次又一次地是非常困难的weird@Sky是否为每个请求设置新ID?Set Cookie
调用应该在每个请求中都存在,但会话ID应该保持不变。@ceejayoz会话和csrf,在每个请求中都会更改,但它们不是不变的。您的laravel会话驱动程序是什么?@Marijanspassenovski是默认的。文件
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* @var array
*/
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
];
/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'role' => \App\Http\Middleware\Role::class,
];
}