Hallo zusammen, hab ich es richtig verstanden das nun auch die REST-API per Token anstatt über Benutzer/Passwort aufgerufen und authentifiziert werden kann? Wie wäre die URL... wie bisher mit &token=... (ähnlich dem Cron-Job Aufruf) funktioniert leider nicht. Erzeugt hatte ich das Token unter "Rechte und Rollen" im entsprechenden Nutzer. Der REST-API Bearer-Aufruf Test via curl mittels des Tokens klappt auch nicht (Authentifizierung verweigert): Code: curl -H 'Accept: application/json' -H "Authorization: Bearer ${TOKEN}" https://{hostname}/api/myresource Angeblich soll dies funktionieren: GX-Bug #58406 REST-API: Token-basierte Authentifizierung https://tracker.gambio-server.net/issues/58406 Es geht nicht um bestehende Module in Sachen IT-Recht Kanzlei etc. Danke & Grüße!
Das funktioniert. Man muss das als JSON Web Token senden, am besten im HTTP Header. Technik ist hier erklärt: https://de.wikipedia.org/wiki/JSON_Web_Token Kann man auch gut mit Postman ausprobieren, dort als Bearer Token senden.
Hi, das ist ab der Shopversion 3.11.1.0 möglich. Mit folgendem Befehl hat es in meinem Testshop ohne Probleme funktioniert: curl -H 'Accept: application/json' -H "Authorization: Bearer token" (Link nur für registrierte Nutzer sichtbar.)
Danke für die schnelle Rückmeldung, die Authorisierung scheint er jetzt grundsätzlich zu akzeptieren, irgendwie scheint der Nutzer aber nicht über ausreichend Rechte zu verfügen. Habe soeben nochmal die Rolle gecheckt und alles zur API freigegeben und den Nutzer erneut zugewiesen - gleiches Problem weiterhin. Noch eine Idee was an Rechten noch fehlen könnte? Gleicher Nutzer mit Zugriff per URL auf die API und AuthBasic funktioniert wunderbar - vor und nach der Einstellungs-Veränderung von oben. Vielleicht noch irgendwas, was ich übersehen haben könnte? Vielleicht im Rahmen der Updates irgendwas nicht korrekt angepasst was zur Authentifizierung via JWT nötig wäre? Query: Code: :~# curl -H 'Accept: application/json' -H "Authorization: Bearer ..." "http://meinedomain.de/api.php/v2/shop_information" Antwort: Code: { "code": 0, "status": "error", "message": "permission denied", "request": { "method": "GET", "url": "http://meinedomain.de", "path": "/api.php/v2/shop_information", "uri": { "root": "/api.php", "resource": "/v2/shop_information" } }, "error": { "file": "/var/www/GXMainComponents/Controllers/Api/v2/ApiV2Authenticator.inc.php", "line": 201, "stack": [ { "file": "/var/www/GXMainComponents/Controllers/Api/v2/ApiV2Authenticator.inc.php", "line": 62, "function": "authorizeBearer", "class": "ApiV2Authenticator", "type": "->", "args": [ "ShopInformationApiV2Controller" ] }, Danke & Grüße!
Fehler gefunden! Das API-Token - welches bereits mit einer älteren Version erzeugt wurde - scheint nicht mehr nutzbar (obwohl noch gültig) zu sein. Mit einem neu-generierten Token funktionierte es nun auf Anhieb. Hatte sich hier im Rahmen von Updates irgendetwas geändert? Wir hatten vorher gestestet ob es an: Zur langen Token-Laufzeit (ähnlich SSL-Zertifikaten) nicht-genutzten SSL (Entwicklungssystem) Verbindung/https läge, dem war aber nicht so - diese Einschränkungen sind nicht gegeben. Ich würde mir noch eine Funktion wünschen, Tokens löschen (und ungültig machen) zu können. Wir haben diese nun händisch aus der Datenbank entfernt.
Nanu. Da hätte sich nicht absichtlich etwas verändert - wir hätten soweit auch keine Kenntnis davon. Müssen wir uns mal anschauen.