Felhasználó beállításai
Amennyiben a bővítmény jellege megkívánja, biztosítható a felhasználók számára egy webes felület részletes beállításokkal (pl. egy külső szolgáltatás adatainak elérése) egy megadott URL-címen.
Az Eshop felhasználók beállításai
Legegyszerűbben használható ez a helykitöltő _ESHOP_CODE_
az URL paraméterben. A bővítmény beállításainál megadható a beállíások URL címe: https://plugin.tld/store?store=_ESHOP_CODE_
.
A biztonság és a felhasználóiélmény növelése érdekében javasoljuk az Eshop-gyorsan-fiókokon keresztüli bejelentkezést. Az Eshop-gyorsanban egy felhasználó párhuzamosan több webáruházat is kezelhet, amelyekre ez a bővítmény telepíthető. A felhasználóknak a bővítmény saját felületén is biztosítható a váltás lehetősége az egyes webáruházaik között vagy az is megoldható, hogy több webshop esetén tömegesbeállításokkal éljenek és egyben módosítsák a beállításokat.
Bejelentkezéshez az OAuth 2.0 protokolt használjuk (Bővebben zde). Bejelentkezéshez először le kell generálni az API bejelentkezési adatokat a bővítmény részletei fülön. FIGYELEM! Ezek a bejelentkezési adatok eltérnek az Eshop-gyorsan API bejelentkezési adataitól.
felhasználói bejelentkezés
A felhasználó először a belépési oldalra kerül átirányításra.
GET https://marketplace.eshop-gyorsan.hu/user-auth
paraméterekkel:
-
client_id
- Alkalmazás azonosító -
redirect_uri
- URL cím, ami a felhasználót visszairányítja a bővítmény oldalára. Ennek az URLnek meg kell egyeznie az engedélyezési API-hoz való hozzáférés létrehozásakor megadott címmel. -
response_type
- s hodnotoucode
-
scope
- s hodnotouUSER_INFO
-
state
- opcionális paraméter, ami egy egyéni CSRF tokent tartalmaz, amely lehetővé teszi a szerver válasz érvényesítését, amely szintén tartalmazza ezt a tokent.
Sikeres bejelentkezés után a felhasználó a következő paraméterekkel kerül visszairányításra:
-
code
- engedélyezési kód, amit hozzáférési tokenre cserélnek. A kód érvényességi ideje 10 perc. -
state
- CSRF token
Példa:
header('Location: https://marketplace.eshop-gyorsan.hu/user-auth?client_id=LGWQrb7CCOLR5qt8zWnTZXP&redirect_uri=https://plugin-url.tld/login&response_type=code&scope=USER_INFO&state');
Következő lépés a hozzáférési token megszerzése
POST https://marketplace.eshop-gyorsan.hu/api/token
-
grant_type
értékkelauthorization_code
-
client_id
- Alkalmazás azonosító -
client_secret
- Titkos kulcs -
code
- engedélyezési kód -
redirect_uri
- ugyanaz az URL a felhasználó átirányításához
Az autentikáló szerver egy JSON objektummal válaszol:
{ "token_type": "Bearer", "expires_in": 3600, "access_token": "...", // use to retrieve user data and call API requests "refresh_token": "..." }
Példa:
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => https://marketplace.eshop-gyorsan.hu/api/token, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => [ 'grant_type' => 'authorization_code', 'client_id' => 'LGWQrb7CCOLR5qt8zWnTZXP', 'client_secret' => 'e0976500a9ab1bdeacbe7264856ce88d', 'code' => $code, 'redirect_uri' => 'https://plugin-url.tld/login' ], )); $response = curl_exec($curl); curl_close($curl); echo $response;Parametry je potřeba zapsat jako array (form-data), nikoliv jako JSON.
Felhasználói adatok megszerzése
A megkapott hozzáférési token segítségével most már adatokat kérhetünk le a bejelentkezett felhasználóról az API-n keresztül.
GET https://marketplace.eshop-gyorsan.hu/api/user/about
{ "user": "user@email.com", "stores": [ { "system": "www.webareal.cz", "code": "...", "name": "..." } ] }
Az objektum tartalmazza a felhasználó azon webáruházainak listáját, ahol a bővítmény telepítve van.
Példa:
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => https://marketplace.eshop-gyorsan.hu/api/user/about, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Authorization: Bearer ' . $bearer // access token ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
Belépési token megújítása
A belépési token érvényességi ideje egy óra, lejárat után a frissítési token új belépési tokenre cserélhető po. A frissítési token érvényességi ideje egy hónap.
POST https://marketplace.eshop-gyorsan.hu/api/token
-
grant_type
értékkelrefresh_token
-
refresh_token
- előző frissítési token -
client_id
- Alkalmazás azonosító -
client_secret
- alkalmazáskulcs
Az engedélyező kiszolgáló új hozzáférési és frissítési tokent küld vissza:
{ "token_type": "Bearer", "expires_in": 3600, "access_token": "...", "refresh_token": "..." }