У меня есть api для экспорта некоторой информации в файл csv
. API правильный, и он загружает мой файл, когда я обращаюсь к нему из браузера. Мне нужно получить доступ к этому API с терминала и загрузить файл, не заходя в браузер.Использование curl с электронной почтой и паролем
Мой маршрут для API выглядит следующим образом:
Route::get('/api/file/export', 'File\[email protected]', [
'middleware'=>'auth.basic'
]);
Я попытался с помощью локон, как это:
curl --user email:password http://example.com/api/file/export
Я пробовал разные команды завиток, но каждый из отображает редирект для входа HTML , Когда я использую команду -O
для загрузки файла, он загружает файл с переадресацией на ссылку для входа.
curl --user email:password -O http://example.com/api/file/export
Я правильно называю API? Как еще я могу получить доступ к API с терминала?
Похоже, что вы используете базовую HTTP-аутентификацию, но то, что вы описываете как ошибку, похоже на типичное имя пользователя/пароль. Вы изменили промежуточное программное обеспечение 'auth.basic' от того, что по умолчанию используется в Laravel? –
Нет Я не модифицировал файл 'auth.basic'. Какие изменения я должен внести? –
Хм. Возможно, я ошибаюсь, но вы не должны видеть «login html», если используете HTTP-аутентификацию. Это должен быть 401 Несанкционированный ответ, вот и все. Несмотря на это, обычно вы должны использовать аутентификацию на основе токенов, когда вы создаете API, который нуждается в безопасности. [К счастью, у Laravel есть такие вещи, которые выпекались в (https://laravel.com/docs/5.3/passport) (хотя я знаю, что это требует переключения передач). –