2016-11-18 72 views
0

我剛剛在我的子域上使用NGINX的SSL證書設置了自定義API。一切工作正常(獲取請求等),但是,每當我嘗試進行身份驗證,我收到401'無效的憑據'。Laravel HTTPS URL隨機字符?

當我死亡和傾倒$request->all();我想通了,我突然有一個額外的GET參數稱爲'q'?對於https://api.domain.com/api/v1/[email protected]&password=test我的憑據突然變成:

q => [email protected] 
password => test 

我完全莫名其妙,沒有任何人有一個想法,怎麼回事?這發生在我激活我的SSL證書時。

我認爲q是查詢.. 另外,這裏是我的路線文件:

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]uthenticatedUser'); 
    Route::get('me/reservations', '[email protected]'); 
    Route::get('me/customers', '[email protected]'); 
    }); 
}); 

TIA

回答

0

我找到了解決方案。這確實是我的NGINX配置,Laravel不會做這樣的事情。儘可能少重寫是最好的。這是在我的/etc/nginx/sites-available/default我的默認設置:

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

卸下當然查詢字符串解決我的問題之前,Q值。

感謝您的見解

0

我在幾個案件Laravel強制HTTPS與現代重寫,所以你看到的可能想要看看,也許這會有所幫助。

+0

嗯,謝謝,我要看看 –

+0

你能否詳細說明可能?我還沒有弄清楚它...... –

2

什麼版本的Laravel?

我還沒有看到這種行爲(重寫參數);如果拉拉維爾事實上是罪魁禍首(而且有點失望),我會非常驚訝。如果您使用的是Laravel 5.3(也可能是5.2,不確定),您可以使用$ request-> getContent()來查看Laravel所看到的整個請求對象。正如以下評論所示,我同意這不是Laravel,更可能是您的配置問題(尤其是考慮到您啓用HTTPS時)。

Laravel不處理安全層(https),您的web服務器,所以從Laravel的POV http === https,它不應該在乎任何方式。

+0

是的,這很可能是nginx配置中的東西。 Laravel不這樣做。 – ceejayoz

+0

不,它絕對不是Laravel ..(我使用5.3雖然)。但我很困惑什麼配置會觸發這種行爲?我想我追溯自己的步驟是目前我唯一的選擇。 @Morgan –

+1

發佈你的nginx配置,因爲這是最可能的罪魁禍首。 – Morgan