Laravel auth изменить под себя

Всем удачного кодинга к сути! Столько материалов перечитал и пролистал, но ни где нет внятного объяснения или инструкции, как поменять аутентификацию laravel которая есть поумолчанию. Laravel дает таблицу users и через неё происходит аутентификация.

Начал переписывать старый сайт который на чистом php -> на laravel. Базу данных трогать нельзя. А аутентификация по старому сайту происходила по таблице допустим login_users(в которой только логин и пароль) аутентификация по ней и происходит. А данные о пользователе хранятся в другой таблице например site_people(тут есть ФИО) они тоже после аутентификации хранились в сессии(чтобы был быстрый доступ).

Так вот, как правильно сделать аутентификацию, не нарушая структуру базы. Любая инфа с вашей стороны мне бы помогла. Может собственными средствами laravel это не сделать? Может нужно вновь сессии использовать и свою аутентификацию делать? Или есть способ как это сделать с помощью laravel(и с возможностью быстрого получения данных аутентифицированного человека как уже встроено в laravel например Auth::id и его фио, тип пользователя, адрес и.т.д. получая данные из 2-3 разных таблиц). Например User->type,User-name,User->login и все эти три составляющие хранятся в разных трех таблицах связанные через id.


Ответы (1 шт):

Автор решения: Knyaz71

Просто как мысль, попробовать переопределить связанную таблицу для модели User и при каждом запросе подцеплять вторую таблицу (с логинами/паролями)...

...
use Illuminate\Database\Eloquent\Builder;

class User extends Authenticatable
{
    ...

    /**
     * The table associated with the model.
     */
    protected $table = 'site_people';


    /**
    * The "booted" method of the model.
    *
    * @return void
    */
    protected static function booted()
    {
        static::addGlobalScope('ancient', function (Builder $builder) {
            $builder->leftJoin('login_users', 'login_users.user_id', '=', 'site_people.id');
        });
    }
}
→ Ссылка