Setările utilizatorului
Dacă natura plugin-ului dvs. o cere, este posibil să furnizați utilizatorilor o interfață web cu setări detaliate (de exemplu, acces la date pentru un serviciu extern) la o URL specificată.
Identificare și afișare setări pentru utilizatorii magazinului online
În cel mai simplu caz, puteți utiliza plasatorul _ESHOP_CODE_ în parametrul URL-ului. De exemplu, puteți specifica o URL pentru setări în setările adiționale ale addon-ului: https://plugin.tld/store?store=_ESHOP_CODE_.
Cu toate acestea, pentru a crește securitatea și confortul utilizatorului, vă recomandăm să implementați autentificarea prin conturile Eshop Rapid. În Eshop Rapid, un utilizator poate gestiona mai multe magazine online pe care addon-ul dvs. poate fi instalat. În propria interfață, puteți oferi utilizatorilor posibilitatea de a trece rapid la un alt magazin online sau de a lega magazine online și setări în masă!
Procesul de autentificare utilizează protocolul OAuth 2.0 (mai multe aici). Pentru a implementa autentificarea, generați mai întâi credențialele API de autentificare în fila detaliilor addon-ului. ATENȚIE! Aceste date de acces sunt diferite de datele de acces la API-ul Eshop Rapid.
Autentificarea utilizatorului
Utilizatorul este redirecționat mai întâi către pagina de autentificare.
GET https://marketplace.eshop-rapid.ro/user-auth cu parametrii:
-
client_id- ID-ul aplicației -
redirect_uri- URL-ul pentru redirecționarea utilizatorului înapoi la site-ul plugin-ului. Trebuie să se potrivească cu adresa specificată la crearea accesului la API-ul de autorizare -
response_type- cu valoareacode -
scope- cu valoareaUSER_INFO -
state- un parametru opțional care conține un token CSRF personalizat, care permite validarea răspunsului serverului, care va conține și acest token
După o autentificare reușită, utilizatorul este redirecționat înapoi cu următorii parametrii:
-
code- codul de autorizare, care va fi schimbat cu un token de acces. Valabilitatea acestui cod este de 10 minute. -
state- token CSRF
Exemplu:
header('Location: https://marketplace.eshop-rapid.ro/user-auth?client_id=LGWQrb7CCOLR5qt8zWnTZXP&redirect_uri=https://plugin-url.tld/login&response_type=code&scope=USER_INFO&state');
Următorul pas este obținerea token-ului de acces
POST https://marketplace.eshop-rapid.ro/api/token
-
grant_typecu valoareaauthorization_code -
client_id- ID-ul aplicației -
client_secret- cheia secretă -
code- codul de autorizare -
redirect_uri- același URL pentru redirecționarea utilizatorului
Serverul de autorizare răspunde cu un obiect JSON:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "...", // utilizat pentru a obține datele utilizatorului și pentru a efectua solicitări API
"refresh_token": "..."
}
Exemplu:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => https://marketplace.eshop-rapid.ro/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;
Parametrii trebuie să fie scriși ca un array (form-data), nu ca JSON. Obținerea datelor utilizatorului
Token-ul de acces poate fi acum folosit pentru a interoga API-ul pentru a obține date despre utilizatorul autentificat.
GET https://marketplace.eshop-rapid.ro/api/user/about
{
"user": "user@email.com",
"stores": [
{
"system": "www.webareal.cz",
"code": "...",
"name": "..."
}
]
}
Obiectul conține, de asemenea, o listă a magazinelor online ale utilizatorului pe care plugin-ul este instalat.
Exemplu:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => https://marketplace.eshop-rapid.ro/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;
Reînnoirea token-ului de acces
Token-ul de acces are o valabilitate limitată de 1 oră; după expirarea sa, token-ul de reîmprospătare poate fi schimbat cu un
Token-ul de acces are o valabilitate limitată de 1 oră; după expirarea sa, token-ul de reîmprospătare poate fi schimbat cu un token de acces nou. Valabilitatea token-ului de reîmprospătare este de 1 lună.
POST https://marketplace.eshop-rapid.ro/api/token
-
grant_typecu valoarearefresh_token -
refresh_token- token-ul de reîmprospătare anterior -
client_id- ID-ul aplicației -
client_secret- cheia aplicației
Serviciul de autorizare returnează un token de acces și un token de reîmprospătare nou:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "...",
"refresh_token": "..."
}