Ključevi i autentikacija
Web shop ima dvije vrste ključeva i API je prema njima podijeljen. Javni ključ je na stranici web shopa i smije samo ono što smije kupac. Tajni ključ ostaje na vašem poslužitelju i jedini može potvrditi cijenu.
Putanje, nazivi polja, kodovi pogrešaka, nazivi zaglavlja i primjeri kôda ostaju na engleskom: oni su ugovor.
Javni ključ i tajni ključ
Javni ključ putuje u URL-u kao ?key=. Javan je po zamisli: nalazi se u izvornom kôdu vaše stranice i radi samo s podrijetla navedenih uz njega. Tajni ključ putuje kao Authorization: Bearer <key> i namijenjen je samo vašem poslužitelju. Preglednik ga servisu ne može ni poslati: Authorization nije na CORS popisu dopuštenih zaglavlja.
| Ključ | Zaglavlje | Putanja |
|---|---|---|
| javni | ?key=pk_… | GET /cfg/v1/config/public · GET /cfg/v1/catalog/search · POST /cfg/v1/preview · POST /cfg/v1/quote · POST /cfg/v1/order · POST /cfg/v1/projects · GET /cfg/v1/projects · GET /cfg/v1/projects/{id} · POST /cfg/v1/projects/{id} · POST /cfg/v1/projects/{id}/duplicate · POST /cfg/v1/projects/{id}/reorder |
| tajni | Authorization: Bearer sk_… | POST /cfg/v1/quote/verify · GET /cfg/v1/orders/{id} |
Dopuštena podrijetla
Svaki javni ključ nosi popis od najviše 20 podrijetla: shema, host i port točno onako kako ih šalje preglednik, primjerice https://shop.example.com. Zahtjev s bilo kojeg drugog podrijetla odbija se s 403 origin_not_allowed, uključujući preflight, a servis nikad ne odgovara s Access-Control-Allow-Origin: *. Popis je signal, a ne autentikacija: prava obrana su cijena izračunata na poslužitelju i ograničenja učestalosti.
Testni ključevi
Živi web shop može stvoriti do 3 testnih ključeva (pk_test_…, sk_test_…). Testni ključ određuje cijene prema vašoj najnovijoj provjerenoj skici, pa promjenu možete isprobati prije objave. Ne naplaćuje se, njegove narudžbe ne šalju webhook ni e-poštu, a istječe nakon 30 dana. Test i stvarni rad nikad se ne miješaju: testna ponuda provjerava se samo testnim tajnim ključem, testnu narudžbu vidi samo testni ključ, a stvarni ključ je nikad ne vidi. Testni ključ smije navesti http://localhost kao podrijetlo.
Token projekta
Spremljeni projekti vezani su uz kupca, a ne uz prijavu. Prvi POST /cfg/v1/projects izdaje nasumični token (cfgpt_…) i vraća ga samo jednom; ugrađeni konfigurator ga čuva i šalje kao X-Cfg-Project-Token pri svakom sljedećem pozivu projekta. Token drugog kupca, ključ drugog web shopa i nepoznati id odgovaraju jednako: 404.
Rotacija bez prekida rada
Rotacija se provodi u konzoli i svaka vrsta ključa ima preklapanje da se ništa ne prekine dok prelazite.
- Javni ključ: novi ključ zadržava isti popis podrijetla; stari i dalje radi 168 sati prema zadanim postavkama (najviše 720).
- Tajni ključ: prikazuje se jednom; stari ključ i dalje autentificira 24 sati prema zadanim postavkama (najviše 720).
- Ključ za potpisivanje ponuda: novi ključ potpisuje od sada; ponude koje je potpisao stari i dalje se provjeravaju i mogu se naručiti do 31 dana.
- Tajna webhooka: tijekom prelaska obje tajne potpisuju svaku isporuku 7 dana, kao dvije vrijednosti
v1=, pa vaš prijamnik može koristiti bilo koju.
Što nikad ne ide u preglednik
Tajni ključ i tajna webhooka (whsec_…). Čuvajte ih u okruženju svog poslužitelja, nikad na stranici, u repozitoriju ni u zapisniku. Ako jedna procuri, rotirajte je u konzoli.
Gumba „isprobaj“ ovdje namjerno nema: tajni ključ pripada vašem poslužitelju, nikad pregledniku. Demo web shop prikazuje ugradnju i predaju narudžbe u radu od početka do kraja.
Pravne informacijeUvjeti konfiguratora (EN) ·Ugovor o obradi podataka (EN) ·Obavijest o privatnosti za kupce ·Licencije trećih strana (EN)