Užívateľské nastavenie
Pokiaľ si to povaha vášho doplnku žiada, je možné užívateľom pripraviť na zadané URL webové rozhranie s detailným nastavením (napr. prístupové údaje k externej službe).
Identifikácia a zobrazenie nastavenia pre eshop užívateľa
V najjednoduchšom prípade je možné využiť zástupný kód _ESHOP_CODE_ v parametri URL. V nastavení doplnku je teda možné napríklad uviezť URL pre nastavenie: https://plugin.tld/store?store=_ESHOP_CODE_.
Na zvýšenie bezpečnosti a komfortu užívateľov však odporúčame implementovať prihlasovanie prostredníctvom Webareal účtov. V systéme Webareal môže jeden používateľ spravovať viac eshopov, na ktorých môže byť nainštalovaný váš doplnok. Vo vlastnom rozhraní tak môžete užívateľom ponúknuť rýchle prekliknutie na iný eshop alebo prepojenie eshopov a hromadné nastavenie!
Proces prihlásenia využíva protokol OAuth 2.0 (viac tu). Pre implementáciu prihlasovania najskôr vygenerujte prístupové údaje k autorizačnej API na karte v detaile doplnku. POZOR! Tieto prístupové údaje sa líšia od prístupových údajov k Webareal API.
Prihlásenie užívateľa
Užívateľ je najprv presmerovaný na autentizačnú stránku.
GET https://marketplace.webareal.sk/user-auth s parametrami:
-
client_id- ID aplikácie -
redirect_uri- URL pre presmerovanie používateľa späť na stránky doplnku. Musí sa zhodovať s adresou zadanou pri vytváraní prístupu k autorizačnej API -
response_type- s hodnotoucode -
scope- s hodnotouUSER_INFO -
state- voliteľný parameter obsahujúci vlastný CSRF token, čo umožňuje validáciu odpovede servera, ktorá tento token bude tiež obsahovať
Po úspešnom prihlásení je užívateľ presmerovaný späť s nasledujúcimi parametrami:
-
code- autorizačný kód, ktorý bude vymenený za prístupový token. Platnosť toho kódu je 10 minút. -
state- CSRF token
Príklad:
header('Location: https://marketplace.webareal.sk/user-auth?client_id=LGWQrb7CCOLR5qt8zWnTZXP&redirect_uri=https://plugin-url.tld/login&response_type=code&scope=USER_INFO&state');
Ďalším krokom je získanie access tokenu
POST https://marketplace.webareal.sk/api/token
-
grant_types hodnotouauthorization_code -
client_id- ID aplikácie -
client_secret- tajný kľúč -
code- autorizačný kód -
redirect_uri- rovnaká URL pre presmerovanie používateľa
Autorizačný server odpovie JSON objektom:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "...", // použitie pre získanie údajov o užívateľovi a volanie API requestov
"refresh_token": "..."
}
Príklad:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => https://marketplace.webareal.sk/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;
Parametre je potrebné zapísať ako array (form-data), nie ako JSON. Získanie údajov o užívateľovi
Pomocou získaného access tokenu je teraz možné dotazom na API načítať údaje o prihlásenom užívateľovi.
GET https://marketplace.webareal.sk/api/user/about
{
"user": "user@email.com",
"stores": [
{
"system": "www.webareal.cz",
"code": "...",
"name": "..."
}
]
}
Objekt taktiež obsahuje zoznam eshopov užívateľa, na ktorých je daný doplnok nainštalovaný.
Príklad:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => https://marketplace.webareal.sk/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;
Obnova access tokenu
Access token má obmedzenú platnosť na 1 hodinu, po jeho vypršaní je možné vymeniť refresh token za nový access token. Platnosť refresh tokenu je 1 mesiac.
POST https://marketplace.webareal.sk/api/token
-
grant_types hodnotourefresh_token -
refresh_token- predošlý refresh token -
client_id- ID aplikácie -
client_secret- kľúč aplikácie
Autorizačný server vracia nový access a refresh token:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "...",
"refresh_token": "..."
}