2016-10-07 36 views
5

Url ứng dụng Laravel sẽ có dạng như app.laravel.com\{clientName}. Tất cả các tuyến đường sẽ theo sau client_name, ví dụ: app.laravel.com\{clientName}\home, app.laravel.com\{clientName}\profile. Sẽ tải/hiển thị ứng dụng phụ thuộc vào clientName.Đường dẫn phiên thay đổi ứng dụng Laravel động

routes/web.php

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

Trong appclient middleware

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

Những gì tôi đang cố gắng để đạt được thiết lập phiên dựa trên thư mục clientName. Khi tôi đăng nhập, tôi nhận được TokenMismatchException.

Câu hỏi đầu tiên

Tôi có thể lưu trữ các phiên dựa trên url với thư mục như app.laravel.com\{clientName}?

Second Câu hỏi

tôi thấy có một thiết session.path, những gì ở trên tôi đã cố gắng là sử dụng phương pháp đó. Nếu có thể, tôi có thể khắc phục vấn đề này như thế nào? Bạn có nên cập nhật đường dẫn phiên trong phần mềm trung gian không?

Đánh giá cao bất kỳ phản hồi hay khác tiếp cận

CẬP NHẬT

  • Sử dụng Redis như lái xe phiên
  • Trong nghiên cứu thêm tôi token yêu cầu phiên mỗi khi tạo mới một

Trả lời

0

Điều tôi di chuyển d được cập nhật động session.path & session.cookie động.

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

Điều này hiện đang làm việc cho tôi.

Các vấn đề liên quan