Я нахожусь в контроллере guzzle, делая запрос к внешнему API.
Я хочу использовать идентификатор пользователя, который вошел в систему.
Я выполнял запрос с помощью static id
, но теперь я хочу его динамически.
Я пробовал так:
$science = Auth::user()->science_id;
$client = new Client(['headers' => ['Accept' => 'application/json']]);
$request = $client->get(
'https://url_to_the_api/'.$science.'/degree',
[
'auth' => ['client', 'secret'],
]
);
$data = $request->getBody()->getContents();
return $data;
А у меня ошибка
500(internal server error)
и это сообщение:
"Trying to get property 'science_id' of non-object"
Что мне не хватает?
Спасибо за ваше время
Рухолла я ахахах
Убедитесь, что имя столбца 'science_id' в пользовательской таблице такое же.
Это Арун Дж. Кажется, он не определяет, что я вошел в систему, не знаю, почему
Где вы пишете этот код? Какой маршрут вы запрашиваете, когда запускаете этот код? Охраняется ли маршрут промежуточным программным обеспечением auth
?
Если вы используете его в веб-приложении, сначала убедитесь, что пользователь уже аутентифицирован с помощью промежуточное ПО аутентификации или вручную с помощью функции Auth::check()
.
Или
Если вы пытаетесь выполнить это с помощью API, это не сработает, потому что в этом случае сеанс не будет поддерживаться. Вот почему токены JWT были введены для поддержания состояния приложения.
Я решил это так:
$science = auth('api')->user()->science_id;
Спасибо за помощь!
Вы вошли в систему?