Я использую аутентификацию по паспорту для своего Laravel 5.4 API. здесь у меня есть api для информации о компании, и это api без авторизации. Мне нужно проверить авторизованный пользователь, которому понравилась эта компания, используя auth в этом URL ... как я могу это сделать
Это мой маршрут
Route::get('/company/{company}','Api\V1\CompanyController@show');
Route::group(['middleware' => 'auth:api','prefix'=>'v1'], function(){
//auth urls
}
а это мой контроллер
class CompanyController extends Controller
{
public function show(Company $company,Request $request)
{
$data = array();
$flag = 0;
$data['status'] = 1;
$data['message'] = 'success';
$data['baseUrl'] = url('/');
$data['is_login'] = Auth::check();
Здесь is_login всегда возвращает false, если я добавил токен авторизации в заголовки api.
маршруты с auth:api выдают ошибку, если гость? auth()->check() в другом месте работает?






Какая у вас установленная по умолчанию охрана?
Auth::check() - это Auth::guard(null)->check(), который использует текущую защиту по умолчанию.
Если вы хотите проверить api, вы, вероятно, захотите использовать защиту api так же, как ваше промежуточное программное обеспечение auth, когда вы используете auth:api.
Auth::guard('api')->check() сообщает ему явно использовать защиту api вместо того, что установлено по умолчанию, что может быть любым, поскольку мы не знаем, что вы установили.
Когда промежуточное программное обеспечение auth запускается, оно фактически устанавливает для вас защиту по умолчанию в зависимости от того, какие средства защиты переданы ему и от кого он может разрешить пользователя. Вот почему вы можете просто вызвать Auth::user() и получить правильного пользователя от правильного охранника, потому что промежуточное программное обеспечение устанавливает текущий на тот, который разрешил пользователя. (При вызове маршрутов с этим промежуточным ПО)
Итак, у вас есть раздел, который не требует аутентификации, но вы все равно хотите получить аутентифицированного пользователя?