2014-09-23 22 views
0

在一個laravel項目,我想有兩個身份驗證方法:Laravel:多重身份驗證方法實現

  1. API客戶端身份驗證(檢查是否客戶端可以查詢API)與專用雄辯模型(像APIUser)
  2. 用戶認證(以檢查用戶憑證)與另一專用模型(有什麼用戶)

我想通過第一身份驗證系統來驗證,然後檢查通過第二身份驗證系統用戶憑證。例如:

curl -u a:b myapi/?user=c&pass=d

所以a & b是登錄和API客戶端身份驗證密碼和c & d的登錄名和密碼進行用戶身份驗證。什麼是最好的方式來做到這一點:創建一個多重認證系統?或者考慮只有一個系統是auth,另一個只是查詢數據庫?或者是其他東西 ? (希望我的問題很清楚,我可以編輯,如果你需要的話)

回答

0

Multiauth像內置laravel auth一樣工作,但允許幾個獨立的auth會話(您可以在第一個,第二個或兩個帳戶登錄)。

+0

謝謝!正如我對庫沙所說的,我的問題不是「拉拉維爾中是否有多重系統」,而是「我應該使用多重系統」。對不起,我的問題不是很清楚......我很快就會編輯。非常感謝 ! – 2014-09-24 07:24:10

+0

是的,我想你應該出於安全原因實施multiauth。你永遠不知道用戶如何使用這些API憑證(他可以將它作爲純文本發送) – 2014-09-24 07:36:18

0

使用Ollieread的MultiAuth擴展名爲Laravel。它爲你設置了一切。只要打開該文件app/config/auth.php並替換該數組:

return array(
    'driver' => 'eloquent', 
    'model' => 'User', 
    'table' => 'users', 
    'reminder' => array(
     'email' => 'emails.auth.reminder', 
     'table' => 'password_reminders', 
     'expire' => 60, 
    ), 
); 

return array(
    'multi' => array(
     'admin' => array(
      'driver' => 'eloquent', 
      'model' => 'Admin' 
     ), 
     'user' => array(
      'driver' => 'database', 
      'table' => 'users' 
     ) 
    ), 

    'reminder' => array(
     'email' => 'emails.auth.reminder', 
     'table' => 'password_reminders', 
     'expire' => 60, 
    ), 
); 

當然,你可以添加你想要的。然後複製粘貼Admin.php表的默認User.php模型。

+0

好的,非常感謝你的回答!我的問題不是關於如何在用戶和管理員中使用Ollieread的MultiAuth,而是:(1)通過http basic(2)連接到api然後檢查用戶憑證的最佳方式是什麼?創建(或使用)多途徑系統(如Ollieread的MultiAuth)?或者只考慮一個系統用於auth(http基本用於API認證),另一個僅僅是查詢數據庫(檢查數據庫中的憑證然後將真或假返回給api客戶端)?或者是其他東西 ?這與用戶級別無關(沒有「用戶」和「管理員」上下文)。希望它很清楚(對不起)。謝謝:) – 2014-09-24 07:21:37

+0

@ rap-2-h,你的'客戶'更像是一個許可?還是整個另一個用戶系統?如果您實際上有兩種類型的用戶(用戶和客戶端),則出於安全原因您應該使用多重身份驗證系統。如果您只有一種類型的用戶(可能具有不同的權限)(如版主,審閱者),則可以實施ACL。 – Kousha 2014-09-24 17:52:56

+0

「客戶端」一詞用於「客戶端/服務器」,而不是用戶類型。很抱歉對於這個誤會 – 2014-09-25 07:48:22