BizKitHub

API pro přihlášení zákazníka

Kromě samotné hodnoty jsou důležité dvě vlastnosti:

Naposledy aktualizováno 1. srpna 2026

Koncový bod pro přihlášení ověří přihlašovací údaje nakupujícího a po úspěšném ověření vrátí identityId – neprůhledný token relace, který e-shop uloží do souboru cookie a použije při následných voláních. Ztráta tokenu ukončí relaci; únik tokenu poskytuje držiteli stejný přístup, jaký má nakupující, dokud jej e-shop nezruší.

Toto je jeden ze tří koncových bodů integrace e-shopu pro zákaznické účty, spolu s API pro registraci zákazníka a API pro informace o zákaznickém účtu. Koncepty za kontakty, registrovanými účty a hosty naleznete v článku Kontakty.

Koncový bod

POST https://api.bizkithub.com/contact/v1/login

Ověření probíhá pomocí standardního parametru apiKey (viz článek API klíč).

Tělo požadavku

Vlastnost Typ Význam
email string E-mailová adresa nakupujícího v záznamu kontaktu.
password string Heslo nakupujícího.

Odpověď

export type PublicCustomerLoginResponse =
| { success: false; errorCode: CustomerLoginErrorCode; message: string }
| { success: true; identityId: string };
export const CUSTOMER_LOGIN_ERROR_CODE = {
E001: 'Customer login failed.',
E002: 'Customer e-mail does not exist.',
E003: 'Customer have not a registered account.',
E004: 'Wrong e-mail or password.',
E005: 'Customer account has been banned.',
E006: 'Too many login attempts.',
E007: 'Customer mail has not been authorized.',
} as const;
export type CustomerLoginErrorCode = keyof typeof CUSTOMER_LOGIN_ERROR_CODE;

Chybové kódy

Kód Zpráva Význam
E001 Přihlášení zákazníka selhalo. Obecné selhání – typicky chyba na straně platformy.
E002 E-mail zákazníka neexistuje. Neexistuje žádný kontakt se zadanou e-mailovou adresou.
E003 Zákazník nemá registrovaný účet. Kontakt existuje, ale nikdy se nezaregistroval – není nastaveno heslo. Nasměrujte nakupujícího na koncový bod pro registraci.
E004 Chybný e-mail nebo heslo. Přihlašovací údaje se neshodují. V praxi to téměř vždy znamená špatné heslo, protože E002 pokrývá případ chybějícího e-mailu.
E005 Zákaznický účet byl zablokován. Přihlášení je zablokováno obchodníkem.
E006 Příliš mnoho pokusů o přihlášení. Ochrana proti hádání hesla pomocí omezení rychlosti. Zkuste to znovu po uplynutí doby ochlazení.
E007 E-mail zákazníka nebyl autorizován. Registrace byla zahájena, ale potvrzovací e-mail nebyl nikdy kliknut. Vyzvěte nakupujícího k dokončení ověření.

Zachování relace

Hodnota identityId je pro e-shop neprůhledná – jejím jediným účelem je být znovu použita při následných voláních API. V prostředí Node.js (Next.js, čistý Express) je doporučeným vzorem uložit ji jako soubor cookie první strany, pouze HTTP:

export const AUTH_COOKIES_NAME = 'auth-id';
cookies().set({
name: AUTH_COOKIES_NAME,
value: response.identityId || '',
secure: true,
httpOnly: true,
path: '/',
expires: new Date(new Date().setMonth(new Date().getMonth() + 3)),
});

Kromě samotné hodnoty jsou důležité dvě vlastnosti:

  • httpOnly: true — JavaScript na e-shopu nemůže číst token, což zmírňuje dopad chyby XSS.
  • secure: true — token je odesílán pouze přes HTTPS.

Nastavte expiraci souboru cookie tak, aby odpovídala životnosti relace platformy. Platforma udržuje přihlašovací relaci platnou po dobu tří měsíců jako výchozí pro trvalé přihlášení; kratší expirace souboru cookie je v pořádku pro kratší doby nečinnosti, delší nikoli – relace na straně serveru již bude neplatná.

Pokud váš e-shop není Node.js (například nativní mobilní aplikace nebo backend napsaný v jiném jazyce), uložte token do jakéhokoli zabezpečeného úložiště, které platforma nabízí – jedinou neměnnou podmínkou je, že jej nesmíte ztratit a nesmíte jej vystavit nedůvěryhodným stranám.

Zpracování odhlášení

Ve veřejném API neexistuje žádný vyhrazený koncový bod pro odhlášení; odhlášení je zodpovědností e-shopu. Odstraňte lokální soubor cookie a, pokud chcete zrušit i relaci na straně platformy, požádejte operátora o její zrušení z administrace Kontaktů (akce Zneplatnit relace). Následný požadavek s zrušeným tokenem obdrží { loggedIn: false } z API pro informace o zákaznickém účtu.

Související články