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 hodnotou code
  • scope - s hodnotou USER_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ékkel authorization_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ékkel refresh_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": "..."
    }