Laravel Auth вручную войти по id

Я новичок в Laravel, и я работаю с функциональностью, где мы вставляем данные в таблицу пользователя с

DB::insert();

После этого я получаю последний идентификатор с

$user_id = DB::getPdo()->lastInsertId();

Теперь я хочу, чтобы пользователь вошел после регистрации, и я пытаюсь

Auth::loginUsingId($user_id);

Но это возвращает меня ложь. Я тоже пробовал

$user = User::find($user_id);
Auth::login($user);

Его также возвращает null $user.

Пожалуйста помоги...

4 ответа

Это сработало для меня

      Auth::loginUsingId(1);

Логин пользователя:

Auth::login($user);

проверьте, является ли текущий пользователь логином или нет:

Auth::check();

Auth:login возвращается void так что вы можете попробовать что-то вроде этого, чтобы проверить, вошел ли пользователь в систему или нет:

Auth::login($user);
return [
    'status' => Auth:check()
];

check() определить, аутентифицирован ли текущий пользователь или нет.

Итак, вы можете показать свою модель пользователя?

В Документах Laravel ( https://laravel.com/docs/5.7/authentication) вы можете видеть, что ваша модель должна быть реализацией контракта Illuminate\Contracts\Auth\Authenticatable.

Базовая модель User выглядит следующим образом:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

и это ожидалось.

Другие вопросы по тегам