2016-10-07 2 views
5

laravel 응용 프로그램 URL은 app.laravel.com\{clientName}과 같을 것입니다. 모든 경로는 client_name을 따릅니다 (예 : app.laravel.com\{clientName}\home, app.laravel.com\{clientName}\profile). 응용 프로그램로드/렌더링은 clientName에 따라 다릅니다. appclient 미들웨어 clientName 디렉토리에 따라 세션을 설정 내가 달성하기 위해 노력하고있어Laravel 응용 프로그램이 동적으로 세션 경로를 변경합니다.

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); 
} 

에서

Route::group(['prefix' => '{clientName}', 'middleware' => 'appclient'], function() { 
    Route::get('/', '[email protected]'); 
    Route::post('login', 'Auth\[email protected]'); 
    Route::post('logout', 'Auth\[email protected]'); 
    Route::get('home', '[email protected]'); 
}); 

routes/web.php

. 로그인 할 때 TokenMismatchException이 발생합니다.

첫 번째 질문

나는 app.laravel.com\{clientName} 같은 디렉토리와 URL을 기반으로 세션을 저장할 수 있습니까?

두 번째 질문

나는 내가 그 방법을 사용하는 것입니다 노력 위에 어떤 설정 session.path,이 보았다. 가능하다면이 문제를 어떻게 해결할 수 있습니까? 미들웨어에서 세션 경로를 업데이트하는 것이 좋은 생각입니까?

다시 모든 피드를 감사합니다 또는 다른 때마다 새로운 를 생성 세션 드라이버로 내 추가 조사에서

  • 요청 세션 토큰을 Redis를 사용

    UPDATE

    • 접근
  • 답변

    0

    내가 무엇이 디 d는 session.path & session.cookie으로 동적으로 업데이트됩니다.

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

    현재 현재 작동 중입니다.

    관련 문제