如上篇,Laravel JWT預設只能認證一種user,但實務上我們可能有不同的role需要各自做Authentication,例如我們有管理員、客戶、員工,等等。
Note: 小弟一開始是參考了網路上各種教學,但都是Laravel較舊版本的教學,經測試在Laravel 8無法work(也有可能是我的問題XD),後來try出這個方法可行。
以下以employee與user來示範。直接來看程式碼:
這邊是route的配置,與url pattern有關。

Models的部分,根據需求新增employee, user兩個model。

Controller的部分,以auth:user、auth('user')來說,這個user的guard name,與config/auth.php中的guard name是mapping的。

config/auth.php:


這邊可以看到guards中還有provider,是跟下面的providers mapping的,providers中的model則是對應到設定的model class。
根據這樣的對應關係,登入的時候會到指定的model table裡抓資料,來驗證帳密對不對。
結果demo:


本筆記參考:
1. https://medium.com/@JinoAntony/multi-user-api-authentication-using-laravel-jwt-8ae572b0c4cf
2. https://linkjian.com/post/laravel-jwt-multi-user/