私はいくつかの情報をcsv
ファイルにエクスポートするAPIを持っています。 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'ファイルを変更していません。私は何を変えるべきですか? –
Hmm。たぶん私は間違っていますが、あなたはHTTP認証を使用している場合は、 "ログインhtml"が表示されるべきではありません。それはちょうど401 Unauthorizedレスポンスでなければなりません。それにかかわらず、セキュリティを必要とするAPIを構築する場合は、通常、トークンベースの認証を使用します。 [幸運なことに、Laravelには焼きたてのものがある](https://laravel.com/docs/5.3/passport)(ギアを交換する必要があることは分かっているが) –