2015-05-22 104 views
1

我有2個用戶用戶和後端用戶的表 - 一個用於前端用戶(常規用戶/客戶),另一個用於後端用戶(管理員)。請注意,這兩個表有不同的結構,不要告訴我將它們組合在一起並使用一個表。Laravel 5對於管理員的單獨身份驗證

我心裏有兩個解決方案:

  1. 是複製/擴展認證爲後端認證單獨作爲這裏看到:Laravel 5 Implement multiple Auth drivers
  2. 是創建一個多個表可以說UserPivot。其中有一個用於user_id(整數)和user_type(enum('前端','後端'))的列。

我的問題是實現這個最好的方法是什麼?你有更好的解決方案嗎?

我想要1的想法,因爲它分離了後端用戶的身份驗證,它也分離了會話。

+1

您可能還想看看[https://github.com/ollieread/multiauth](https://github.com/ollieread/multiauth)。雖然它尚未更新L5。 –

+0

謝謝,但我已經看到了那位先生。 :D – aceraven777

+0

沒有問題。你不能考慮爲用戶認證創建一個公共表嗎?然後根據用戶角色/類型,您可以獲取相關信息。 –

回答

0

我正在使用這種身份驗證的基礎架構,客戶端和管理員需要使用相同的身份驗證表單登錄。客戶和管理員都有各自的表格。這裏的技巧是:

  1. 創建用戶和管理員之間的連接表,其中鑑別被用來識別卷(完全一樣@傑克 - Opena說)
  2. 擴展身份驗證服務商爲了實現這樣,你可以基於角色驗證憑據:

    // returns an user or admin based on a role and id 
    retrieveById($identifier); 
    
    // returns an user or admin based on a role and its credentials 
    retrieveByCredentials(array $credentials) 
    
    // returns an user or admin based on a role and its token 
    retrieveByToken($identifier, $token) 
    
    // validate the credentials agains the table data based in a role 
    validateCredentials(Authenticatable $user, array $credentials) 
    

另一種方式(醜陋的選項),如果你想避免創建一個連接表,是用戶選擇創建一個新的表單的輸入這個角色被用於au證明其憑據。