gpt4 book ai didi

php - Laravel 应用程序动态更改 session 路径

转载 作者:可可西里 更新时间:2023-11-01 13:31:39 33 4
gpt4 key购买 nike

laravel 应用程序 url 类似于 app.laravel.com\{clientName}。所有路由都将遵循 client_name,例如 app.laravel.com\{clientName}\home, app.laravel.com\{clientName}\配置文件。将加载/呈现应用程序取决于 clientName

routes/web.php

Route::group(['prefix' => '{clientName}', 'middleware' => 'appclient'], function () {
Route::get('/', 'ClientController@index');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout');
Route::get('home', 'HomeController@index');
});

appclient中间件

public function handle($request, Closure $next) {
$clientName = explode('/', $request->path())[0];
$client = Client::where('clientName', $clientName)->first();

if(!isset($client->id)) {
abort(404);
}

Config::set('session.path', "/$clientName");

return $next($request);
}

我想要实现的是根据 clientName 目录设置 session 。当我登录时,我收到 TokenMismatchException。

第一个问题

我可以将基于 url 的 session 存储在像 app.laravel.com\{clientName} 这样的目录中吗?

第二个问题

我看到有一个设置session.path,我在上面尝试的是使用那个方法。如果可能的话,我该如何解决这个问题?在中间件中更新 session 路径是个好主意吗?

感谢任何反馈或其他方法

更新

  • 使用 Redis 作为 session 驱动
  • 在我的进一步调查中,请求 session token 每次都会生成一个新的

最佳答案

我所做的是动态更新 session.pathsession.cookie

Config::set('session.path', "$clientName");
Config::set('session.cookie', $clientName.'_laravel_session');

这目前对我有用。

关于php - Laravel 应用程序动态更改 session 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39910407/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com