/ / Laravel HTTPS URL caractères aléatoires? - laravel, ssl, nginx

Laravel HTTPS URL caractères aléatoires? - laravel, ssl, nginx

Je viens de configurer mon API personnalisée sur monsous-domaine, avec un certificat SSL utilisant NGINX. Tout fonctionne parfaitement (demandes, etc.). Cependant, chaque fois que j'essaie de m'authentifier, je reçois 401 "Informations d'identification non valides".

Quand je meurs et jeté $request->all(); J'ai compris que j'ai soudainement un paramètre supplémentaire GET appelé "q"? Pour https://api.domain.com/api/v1/login?email=test@test.com&password=test Mes lettres de créance sont soudainement devenues:

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

Je suis absolument perplexe. Quelqu'un a-t-il une idée de ce qui se passe? Cela s'est produit lorsque j'ai activé mon certificat SSL.

Je suppose que q est pour la requête .. De plus, voici mon fichier de routes:

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

Réponses:

2 pour la réponse № 1

Quelle version de Laravel?

Je n'ai pas vu ce comportement (paramètres de réécriture); Je serais très surpris si Laravel était en fait le coupable (et un peu déçu).

Si vous utilisez Laravel 5.3 (et peut-être 5.2, pas sûr), vous pouvez utiliser $ request-> getContent () pour voir l’objet requête entier vu par Laravel. Comme le suggère le commentaire ci-dessous, je conviens que ce n'est pas Laravel et plus probablement un problème avec votre configuration (en particulier étant donné que c’est lorsque vous avez activé HTTPS).

Laravel ne gère pas la couche de sécurité (https), mais votre serveur Web, donc, à partir du POV de Laravel http === https, et il ne devrait en aucun cas s'en soucier.


0 pour la réponse № 2

J’ai vu à plusieurs reprises que Laravel Forcing HTTPS avec Mod Rewrite, vous voudrez peut-être jeter un coup d’œil à cela, cela aiderait peut-être.


0 pour la réponse № 3

J’ai trouvé la solution. C’était bien ma configuration NGINX, Laravel ne ferait pas une telle chose. Il est préférable d’avoir le moins de réécriture possible. /etc/nginx/sites-available/default:

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

Supprimer la chaîne q avant la requête résout bien sûr mon problème

Merci pour toutes vos idées