Laravel Auth вручную войти по id - PullRequest
0 голосов
/ 29 января 2019

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

DB::insert();

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

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

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

Auth::loginUsingId($user_id);

Но он возвращает мне значение false.Я также пытался

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

Также возвращается null $ user.

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

Ответы [ 3 ]

0 голосов
/ 29 января 2019

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

Auth::login($user);

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

Auth::check();
0 голосов
/ 29 января 2019

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

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

Модель basic 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',
    ];
}

, и это ожидаемое количество рабочих вшей.

0 голосов
/ 29 января 2019

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

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

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

...