/ / Laravel HTTPS URL zufällige Zeichen? - Laravel, SSL, Nginx

Laravel HTTPS URL zufällige Zeichen? - Laravel, SSL, Nginx

Ich habe gerade meine benutzerdefinierte API auf meinem eingerichtetSubdomain mit einem SSL-Zertifikat unter Verwendung von NGINX. Alles funktioniert einwandfrei (Anfragen abrufen usw.), aber wenn ich versuche, mich zu authentifizieren, erhalte ich 401 "Ungültige Anmeldeinformationen".

Wenn ich sterbe und ablasse $request->all(); Ich habe herausgefunden, dass ich plötzlich einen zusätzlichen GET-Parameter namens "q" habe. Zum https://api.domain.com/api/v1/login?email=test@test.com&password=test Meine Anmeldeinformationen wurden plötzlich:

q => email=test@test.com
password => test

Ich bin absolut verblüfft, hat jemand eine Idee, was los ist? Dies ist passiert, als ich mein SSL-Zertifikat aktiviert habe.

Ich nehme an, q ist für die Abfrage .. Hier ist auch meine Routendatei:

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

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

Route::post("/login", "AuthController@authenticate");

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", "ReservationsController@getReservationsByRoom");
Route::get("users/{id}/reservations", "ReservationsController@getReservationsByUser");
Route::get("users/{id}/customers", "CustomersController@getCustomersByUser");
Route::get("reservations/{id}/customer", "CustomersController@getCustomerByReservation");

Route::get("me", "UsersController@getAuthenticatedUser");
Route::get("me/reservations", "ReservationsController@getReservationsByAuthenticatedUser");
Route::get("me/customers", "CustomersController@getCustomersByAuthenticatedUser");
});
});

TIA

Antworten:

2 für die Antwort № 1

Welche Version von Laravel?

Ich habe dieses Verhalten nicht gesehen (Parameter umschreiben); Ich wäre sehr überrascht, wenn Laravel tatsächlich der Schuldige (und ein wenig enttäuscht) wäre.

Wenn Sie Laravel 5.3 (und möglicherweise 5.2, nicht sicher), können Sie $ request-> getContent () verwenden, um das gesamte Anfrageobjekt zu sehen, wie es von Laravel gesehen wird. Wie der Kommentar unten zeigt, bin ich damit einverstanden, dass es sich nicht um Laravel handelt und eher um ein Problem mit Ihrer Konfiguration (insbesondere, wenn Sie HTTPS aktiviert haben).

Laravel behandelt die Sicherheitsschicht (https) nicht, wie es Ihr Webserver tut, also von Laravels POV http === https, und es sollte ihm auch egal sein.


0 für die Antwort № 2

Ich habe in mehreren Fällen gesehen, dass Laravel Forcing HTTPS mit Mod Rewrite funktioniert, also möchten Sie vielleicht einen Blick darauf werfen, vielleicht würde es helfen.


0 für die Antwort № 3

Ich habe die Lösung gefunden. Es war in der Tat meine NGINX-Konfiguration, Laravel würde so etwas nicht tun. Es ist am besten, weniger Umschreibungen als möglich zu haben. Dies war in meiner Standardeinstellung von my /etc/nginx/sites-available/default:

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

Das Entfernen der Zeichenfolge q vor der Abfrage löst natürlich mein Problem.

Vielen Dank für all Ihre Einsichten