2016-11-18 3 views
0

NGINXを使用したSSL証明書を使用して、自分のカスタムAPIをサブドメインにセットアップしました。しかし、すべてがうまく動作します(要求などを取得します)。認証しようとするたびに、401 'Invalid credentials'が表示されます。Laravel HTTPS URL任意の文字ですか?

私が死んでダンプしたとき$request->all();私は突然、「q」と呼ばれる追加のGETパラメータを持っているとわかりましたか? https://api.domain.com/api/v1/[email protected]&password=testのための私の資格情報は、突然になった:起こっていただきました!

私は絶対に困惑しています
q => [email protected] 
password => test 

、誰もがアイデアを持っていますか?これはSSL証明書を有効にしたときに発生しました。

私は はまた、ここに私のルートファイルです.. Qは、クエリのためであると仮定し

:私はあなたがかもしれないので、Laravelはモッズ書き換えでHTTPSを強制することを、いくつかの例で見てきた

Route::get('/', function() { 
    return 'Welcome to API'; 
}); 

/* API Version 1 */ 
Route::group(['prefix' => 'v1', 'middleware' => 'cors'], function() { 

    Route::post('/login', '[email protected]'); 

    Route::group(['middleware' => ['jwt.auth']], function() { 
    Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'store']]); 
    Route::resource('rooms', 'RoomsController', ['only' => ['index', 'show']]); 
    Route::resource('reservations', 'ReservationsController'); 
    Route::resource('customers', 'CustomersController'); 

    Route::get('rooms/{id}/reservations', '[email protected]'); 
    Route::get('users/{id}/reservations', '[email protected]'); 
    Route::get('users/{id}/customers', '[email protected]'); 
    Route::get('reservations/{id}/customer', '[email protected]'); 

    Route::get('me', '[email protected]'); 
    Route::get('me/reservations', '[email protected]'); 
    Route::get('me/customers', '[email protected]'); 
    }); 
}); 

TIA

答えて

0

解決策を見つけました。それは確かに私のNGINX構成だった、Laravelはそのようなことをしないだろう。できるだけ書き換えを少なくするのが最善です。クエリ文字列は、もちろん私の問題を解決する前に、Qを削除

location/{ 
    try_files $uri $uri/ /index.php?q=$query_string; 
} 

:これは私の/etc/nginx/sites-available/defaultの私のデフォルト設定にありました。すべてのあなたの洞察力のための

おかげ

0

は、それを見てみたいと思うかもしれませんが、おそらく助けになるかもしれません。

+0

うーんおかげ、私は見て –

+0

あなたは多分手の込んだでしたがあるでしょうか?私はまだそれを理解していない... –

2

Laravelのどのバージョンですか?

この動作(パラメータの書き換え)は見られませんでした。私はLaravelが事実上(そして少し失望した)犯人であったなら、非常に驚​​くだろう。

Laravel 5.3(多分5.2ではありません)を使用している場合は、$ request-> getContent()を使用して、Laravelの要求オブジェクト全体を確認できます。以下のコメントが示唆しているように、私はLaravelではなく、あなたの設定に問題がある可能性が高いことに同意します(特に、HTTPSを有効にしたときを考慮)。

Laravelがセキュリティレイヤ(https)を処理​​しないため、WebサーバーはLaravelのPOV http === httpsからアクセスするので、どちらの方法も気にする必要はありません。

+0

ええ、これは、これはnginxの設定で何かより多くの可能性が高いです。ララベルはこれをしません。 – ceejayoz

+0

いいえ、間違いなくLaravel ..(私は5.3を使用しています)です。しかし、私はどのような構成がこの動作をトリガするのか混乱していますか?私の歩みを追跡することは、私の唯一の選択肢だと思う。 @Morgan –

+1

あなたのnginxの設定を投稿してください、それはおそらく最も可能性の高い原因です。 – Morgan

関連する問題