У меня простая задача - сделать APi который возвращает json ответ с данными. Это я сделал с помощью Resource, который вызываю обычным --resource контроллером в методе index. Данные приходят...
Роутинг у меня через api.php
Вопрос в том, как сюда добавить аутентификацию? Когда я захожу под пользователем то api его не видит. Я много рыл инет и уже потеряв надежду понять это - пишу к вам. Кто может помочь с этим?
После коментариев.... пробую сделать как в документации:
api.php:
Route::resource('users', 'UserController')->middleware('auth:api');
config/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
Метод контроллера, где я вызываю Resource, который отправляет json-данные
public function index(Request $request)
{
$user = User::with(['posts' => function ($q) {
$q->orderBy('created_at', 'desc');
}])->find($request->get('id'));
return new UserResource($user);
}
Даже файл ресурса сюда кину:
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->first_name . ' ' . $this->second_name,
'postCount' => count($this->posts),
'lastPostTitle' => $this->posts[0]->title,
'lastPostImageSrc' => $this->posts[0]->getImage()
];
}
Вот и почему залогиненого пользователя с api_token редиректит во время запроса: http://site/api/users?id=2 Как оно работает ??)))
В документации подробно описано: https://laravel.com/docs/5.8/api-authentication
Добавляете в миграции таблицы users:
$table->string('api_token', 80)->after('password')
->unique()
->nullable()
->default(null)
Далее рефрешите базу данных:
php artisan migrate:refresh
Создаете пользователя. Присваиваете вашему пользователю api_token, можете хэшировать, можете нет - без разницы, сложность и обновление токена - уровень логики вашего приложения. Для примера возьмем api_token=1111.
Смотрим дефолтный роут в api.php:
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Чтобы получить доступ к этому роуту нужно перейти по адресу:
domen/api/user?api_token=1111
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
API работает во всех браузерах нормально, кроме IE 11Есть метод, который принимает данные через $_REQUEST
Всем привет возможно вопрос кому то покажется глупым тк
Разъясните, пожалуйста, что является бизнес логикой приложения и где ее границы с контроллером? Какой вариант более правильный и почему:...
В адресной строке: /computerzubehör-/, но через $_SERVER['REQUEST_URI'] получаем /computerzubeh%C3%B6r-/Как получить строку как есть, без замены спецсимволами?