система, в которой авторизация может быть выполнена под одной из двух сущностей (условно, назовем user и partner).
Возникает проблема с хранением сессии. Если я правильно понял, то я должен написать свой Authentication Guard (стандартный session guard работает только с одной сущностью), и свой user provider. Сложность, помимо того что написание authentication guard видится мне решением довольно сложным, возникает еще в том что контракт user provider подразумевает реализацию retrieveById, в свою же очередь id у нас могут пересекаться (user 13 и partner 13).
Или же стоит пойти путем наличия двух разных authentication guards, по одному на сущность, и прокинуть middleware, которая смотрит есть ли юзер в \Auth::guard('user')->user() либо \Auth::guard('partner')->user(), и делает Auth::shouldUse() для нужной? Но выглядит как костыль 🙂
На самом деле, это все юзеры. Просто роли разные.
Обсуждают сегодня