Bonjour,
J'ai installer un prestashop 1.6 manuellement sur un sous domaine de mon hébergement mutualisé (offre perf1).
J'utilise ce prestashop via un module qui fourni une API Json qui permet la creation de comptes utilisateurs et l'authentification. http://www.hdb-technology.com/api-prestashop
Mon problème c'est que chaque appel a une route de cette API est reçue en double et est donc traité 2 fois mais je ne reçois qu'une seule réponse.
exemple: j'envois une requête pour créer un compte utilisateur, 2 requêtes sont logger sur le serveur et on voit dans les logs quelles sont reçu à la même seconde, le compte utilisateur est créer en BDD lors du traitement de la première requête un code 200 devrait être retourné mais je ne le reçois jamais car le doublon de la requête est executé et le compte ayant été crée avec l'adresse email envoyer en paramètre le doublon renvois donc une erreur.
J'ai tester en local en installant un prestashop de la même version et en installant et en configurant le modules de la même façon et tout marche parfaitement en local la requête n'est logger qu'une seule fois et je reçois bien un code 200.
Questions :
1. Pourquoi la requête est elle reçue en double sur le serveur ?
2. Qu'est ce qui pourrait provoquer ce problème ? Et comment le résoudre
.ovhconfig:
app.engine=php
app.engine.version=7.1
http.firewall=none
environment=development
container.image=stable
SSL activé sur tout le domaine et tous les sous domaines ainsi que dans la config prestashop pour toutes les pages de la boutique
En espérant trouver une solution au plus vite
Bien cordialement
Hébergements Web - Requêtes API prestashop (module hdbrestfulapi) reçues en doubles sur le serveur mais un
Related questions
- Connexion à mon compte client
155435
13.02.2019 09:51
- Serveur non sécurisé, celui-ci ne supporte pas FTP sur TLS
127635
03.09.2018 14:46
- reCAPTCHA erreur pour le propriétaire du site : clé de site non valide
111850
14.02.2019 16:17
- [FAQ] Comment mettre à jour mon site pour supporter Apache 2.4 ?
99060
28.07.2017 11:39
- Passage en php 7.4
98179
30.06.2020 05:05
- Augmenter taille PHP Post Max Size sur mutualisé ?
92695
04.12.2019 21:52
- Deploy d'un projet Node JS
91714
12.10.2016 20:18
- The requested URL / was not found on this server
91708
02.03.2017 18:25
- Ce site est inaccessible Impossible de trouver l'adresse DNS du serveur
91557
16.10.2016 16:24
- NextCloud sur mutualisé
91420
07.04.2017 08:42
Le https est bien forcé sur le site ?
URL du site ?
Qu'entendez vous par forcé ?
url du site: https://shop.myizybag.com/
url de l'api: https://shop.myizybag.com/modules/hdbrestfulapi/api.php/v1
endpoints sans token /products
Voici le .htaccess du prestashop:
# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com
SetEnv HTTP_MOD_REWRITE On
RewriteEngine on
#Domain: shop.myizybag.com
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api$ api/ [L]
RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
# Images
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType font/woff2 .woff2
AddType application/x-font-woff .woff
Header set Access-Control-Allow-Origin "*"
#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404
# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Les 2 dernières ligne sont rajouter pour la configuration du module API prestashop
Personnellement puisque le site est full https, je rajouterai une ligne avec le hsts de manière à être sur que le navigateur n'envoie pas une requête en http puis une autre en https..
Il faut ajouter ceci au htaccess
# forcer les connexions en https pendant 180 jours
Header always set Strict-Transport-Security "max-age=15552001; includeSubDomains;"
Source
https://www.1certificats.com/FAQ/fr/http_STS.htmlcertificats.com/FAQ/fr/http_STS.html
Malgré l'ajout du hsts, le problème persiste :/
Le développeur de l api n'a aucune idée de cause possible ?
Le technicien du support du module ne sera la que jeudi, mais je ne pense pas que le problème soit lié au code du module vu que tout fonctionne très bien en local
En locant c'est du http ou https ?
Le problème vient peut être de là ..
En local c'est du http, mais en désactivant le https du prestashop et le ssl du serveur et en faisant une requête en http vers l'API le problème est le même...
Bonjour,
Vous avez quoi exactement dans les logs?
(Avec et sans https, sachant qu'il faut plusieurs heures pour activer/désactiver le https).
Cordialement, janus57
Bonjour,
Voici un exemple de log pour la route /carriers en https :
[2018-05-22 11:48:27] hdbrestfulapi.INFO: Matched route "GET_v1_carriers". {"route_parameters":{"_controller":"app.carrier_controller:getCarriersAction","_route":"GET_v1_carriers"},"request_uri":"https://shop.myizybag.com/modules/hdbrestfulapi/api.php/v1/carriers"} []
[2018-05-22 11:48:27] hdbrestfulapi.INFO: > GET /modules/hdbrestfulapi/api.php/v1/carriers [] []
[2018-05-22 11:48:27] hdbrestfulapi.DEBUG: POST DATA: Array ( ) [] []
[2018-05-22 11:48:27] hdbrestfulapi.DEBUG: COOKIE USER DATA: [] []
[2018-05-22 11:48:27] hdbrestfulapi.INFO: < 200 [] []
[2018-05-22 11:48:27] hdbrestfulapi.INFO: Matched route "GET_v1_carriers". {"route_parameters":{"_controller":"app.carrier_controller:getCarriersAction","_route":"GET_v1_carriers"},"request_uri":"https://shop.myizybag.com/modules/hdbrestfulapi/api.php/v1/carriers"} []
[2018-05-22 11:48:27] hdbrestfulapi.INFO: > GET /modules/hdbrestfulapi/api.php/v1/carriers [] []
[2018-05-22 11:48:27] hdbrestfulapi.DEBUG: POST DATA: Array ( ) [] []
[2018-05-22 11:48:27] hdbrestfulapi.DEBUG: COOKIE USER DATA: [] []
[2018-05-22 11:48:27] hdbrestfulapi.INFO: < 200 [] []
et un exemple de la route /products en http:
[2018-05-22 12:16:43] hdbrestfulapi.INFO: Matched route "GET_v1_products". {"route_parameters":{"_controller":"app.product_controller:getProductsAction","_route":"GET_v1_products"},"request_uri":"http://shop.myizybag.com/modules/hdbrestfulapi/api.php/v1/products"} []
[2018-05-22 12:16:43] hdbrestfulapi.INFO: > GET /modules/hdbrestfulapi/api.php/v1/products [] []
[2018-05-22 12:16:43] hdbrestfulapi.DEBUG: POST DATA: Array ( ) [] []
[2018-05-22 12:16:43] hdbrestfulapi.DEBUG: COOKIE USER DATA: [] []
[2018-05-22 12:16:43] hdbrestfulapi.INFO: < 200 [] []
[2018-05-22 12:16:43] hdbrestfulapi.INFO: Matched route "GET_v1_products". {"route_parameters":{"_controller":"app.product_controller:getProductsAction","_route":"GET_v1_products"},"request_uri":"http://shop.myizybag.com/modules/hdbrestfulapi/api.php/v1/products"} []
[2018-05-22 12:16:43] hdbrestfulapi.INFO: > GET /modules/hdbrestfulapi/api.php/v1/products [] []
[2018-05-22 12:16:43] hdbrestfulapi.DEBUG: POST DATA: Array ( ) [] []
[2018-05-22 12:16:43] hdbrestfulapi.DEBUG: COOKIE USER DATA: [] []
[2018-05-22 12:16:43] hdbrestfulapi.INFO: < 200 [] []
On voit bien que les requêtes son reçu en double au même time code
alors qu'en local :
[2018-05-11 11:39:18] hdbrestfulapi.INFO: Matched route "GET_v1_products". {"route_parameters":{"_controller":"app.product_controller:getProductsAction","_route":"GET_v1_products"},"request_uri":"http://192.168.1.33:8888/prestashop/modules/hdbrestfulapi/api.php/v1/products?page=1&perPage=10"} []
[2018-05-11 11:39:19] hdbrestfulapi.INFO: > GET /prestashop/modules/hdbrestfulapi/api.php/v1/products?perPage=10&page=1 [] []
[2018-05-11 11:39:19] hdbrestfulapi.DEBUG: POST DATA: Array ( ) [] []
[2018-05-11 11:39:19] hdbrestfulapi.DEBUG: COOKIE USER DATA: 6 [] []
[2018-05-11 11:39:24] hdbrestfulapi.INFO: < 200 [] []
Bonjour,
Vous avez strictement le même htaccess en local?
Cordialement, janus57
Oui, exactement le même
Cordialement
Je viens de réactualiser mon espace client et je n'ai plus rien dans Multisites, pourtant si j'essaye d'ajouter mon domaine ou le sous domaines que j'avais rajouté précédement il me dit qu'ils sont déjà rattaché à mon hébergement... (Je précise que sa faisait plusieurs heures que je n'avais rien toucher dans l'espace client et que tout était normale tout à l'heure)


Bonjour,
de mon côté un test théorique du .htaccess me dit qu'il effectue deux redirections.
Ce .htaccess est celui de presta / module ou vous l'avez modifié ?
Cordialement, janus57
Bonjour @janus57 ,
Oui c'est le .htaccess du prestashop et j'ai rajouter les 2 dernières lignes pour la configuration du module API comme demander dans la doc de ce module, c'est la seule modification que j'y avais apporté puis comme dit plus haut j'ai rajouter le hsts et c'est tout.
Cordialement