簡體   English   中英

Laravel-Hyn多租戶,租戶連接設置似乎無法解決租戶和會話

[英]Laravel-Hyn Multi-tenancy, tenant connection setup not seems to resolve tenants and sessions

我正在本地主機環境中使用Laravel 5.7.28,Hyn / Multi-tenant 5.3在php中開發多租戶應用程序。 根據舊教程,使用enforce.tenancy中間件強制實施租賃連接。 數據庫連接(config / database.php)如下所示:(省略不需要的行)

'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix' => '',
        'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
    ],

    'system' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'tenancy'),
        'username' => env('DB_USERNAME', 'xxxx'),
        'password' => env('DB_PASSWORD', 'xxxxx'),
        ......
    ],

'tenant' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', '914fb6c2sx'),
        'username' => env('DB_USERNAME', 'xxxx'),
       'password' => env('DB_PASSWORD', 'xxxxx'),
        ......
    ],

'tenant' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', '7239b4a43a'),
        'username' => env('DB_USERNAME', 'xxxx'),
        'password' => env('DB_PASSWORD', 'xxxx'),
        ......
    ],

我有設置會話(config / sessions.php)

/*
|----------------------------------------
| Session Cookie Domain
|----------------------------------------
|
*/
'domain' => env('SESSION_DOMAIN', '.abcd.in'), 

現在,我可以使用相同的域用戶表完全登錄。 如果我在一個租戶連接中登錄,則無需登錄即可轉到具有相同角色的第二個域租戶連接,反之亦然;即,如果我從一個域中注銷,則我將從第二個域中注銷。 我也在使用Spatie / roles-permissions包。 我認為在租戶連接設置和/或會話處理方面我錯了。 我的代碼執行得很好。

我對這個問題的第一個疑問是上面顯示的租戶連接。 在所有租戶中,我使用連接名稱作為“租戶”。 在hyn / multi-tenant中,“ tenant”連接是數組嗎? 我的意思是它在租戶連接數組中搜索正確的域名數據庫名稱? 我不清楚這方面。 如果我將所有連接都命名為租戶是錯誤的,那么我嘗試將租戶命名為'tenant1','tenant2',...(此設置無效)。 如何在這個hyn /多租戶中設置會話。 我正在嘗試使用Redis,但我不知道如何在localhost中設置Redis。

我本人將hyn包用於多租戶應用程序,您只需要定義一次租戶DB連接,而將db,user和pass留空,因為hyn包將在運行時設置正確的詳細信息。 在您的示例中,您有兩個具有相同名稱的租戶數據庫設置,這將無法很好地工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM