Sau*_*nam 6 php laravel laravel-5
laravel应用程序URL将是类似的app.laravel.com\{clientName}.client_name例如app.laravel.com\{clientName}\home,所有路线都将遵循app.laravel.com\{clientName}\profile.将加载/渲染应用程序取决于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');
});
Run Code Online (Sandbox Code Playgroud)
在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);
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的是根据clientName目录设置会话.当我登录时,我收到了TokenMismatchException.
第一个问题
我可以根据目录存储基于url的会话app.laravel.com\{clientName}吗?
第二个问题
我看到有一个设置session.path,我尝试的是使用这种方法.如果可以,我该如何解决这个问题?更新中间件中的会话路径是个好主意吗?
欣赏任何反馈或其他方法
UPDATE
Redis如Session驱动我所做的是动态更新session.path& session.cookie。
Config::set('session.path', "$clientName");
Config::set('session.cookie', $clientName.'_laravel_session');
Run Code Online (Sandbox Code Playgroud)
目前这对我有用。
| 归档时间: |
|
| 查看次数: |
1757 次 |
| 最近记录: |