Laravel настраиваемая аутентификация на основе данных json - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь сделать аутентификацию на основе стороннего API в laravel. не хранить и не использовать данные из моей локальной базы данных. Здесь я храню данные ответа api в виде массива только для визуализации. Он показывает ошибку Аргумент 1, переданный в Illuminate \ Auth \ SessionGuard :: login (), должен быть экземпляром Illuminate \ Contracts \ Auth \ Authenticatable, заданной строкой, вызываемой в vendor \ laravel \ framework \ src \ Illuminate \ Auth \ AuthManager. php. Как я могу это исправить. Я также проводил исследования и разработки. Заранее спасибо

    $user = [
        'status' => '200',
        'token' => 'aWsIpvOEZfv4sfSRUGS2dDeGw7',
        'id' => '12454545412',
        'user' => [
            'name' => 'xyz',
            'email' => 'xyz@gmail.com',
            'phone' => '12344787',
        ],
    ];

    $user = json_encode($user);
    Auth::login($user);
    return redirect( '/home' );

1 Ответ

0 голосов
/ 28 мая 2020

Вы должны создать класс User как фиктивную модель, если хотите.

namespace App\Helpers; // depends on you 

use Illuminate\Foundation\Auth\User as Authenticatable;

class AuthUser extends Authenticatable
{
    protected $guarded = [];
}

И вы можете использовать это так:

$user = [
    'id' => '12454545412',
    'name' => 'xyz',
    'email' => 'xyz@gmail.com',
    'phone' => 1234564897,
    'token' => 'aWsIpvOEZfv4sfSRUGS2dDeGw7' // if you need in your user Object
];
$user = new AuthUser($user);
Auth::login($user);
dd(auth()->user());
...