logo

Seznam pro vývojáře

Spravovat služby

Přihlášení přes Seznam

Seznam pro vývojářePřihlášení přes SeznamFedCM

Federated Credential Management

Pokud máte zájem o Přihlášení přes Seznam s FedCM na vašem webu, musíte:

Podrobné informace o tom, jak FedCM funguje: FedCM API developer guide

Klientská část

Následuje minimalní JS kód dostačující ke správnému fungování FedCM. V případě, že jsou v prohlížeči přihlášení Seznam uživatelé, bude zobrazen FedCM dialog vyzývající k udělení povolení přihlášení přes Seznam.

// neni podporovano ve vsech prohlizecich if ("IdentityCredential" in window) { try { const credential = await navigator.credentials.get({ identity: { context: "signin", providers: [{ // nemenna adresa konf. souboru configURL: "https://login.szn.cz/fedcm/config.json", // vase client_id clientId: "5257140..." }] } }); // naplneni promenne v pripade uspesneho (odsouhlaseneho) FedCM dialogu const code = credential.token; // predani kodu vasi serverove casti // ( . . . ) } catch (e) {} }

Serverová část

Využitím vašeho client_idclient_secret získáte access_token s jehož pomocí následně i data o uživateli. Příklad takového kódu:

# nejprve ziskate access_token res = requests.post("https://login.szn.cz/api/v1/oauth/token", json={ "grant_type": "authorization_code", "code": code, # kod ziskany v klientske casti (pomoci FedCM) "client_id": "5257140...", # vase client_id "client_secret": "e9d4c83..." # vase client_secret }) access_token = res.json().get("access_token") token_type = res.json().get("token_type") # ziskani uzivatelskych dat headers = {"Authorization": f"{token_type} {access_token}"} user_data = requests.get("https://login.szn.cz/api/v1/user", headers=headers)

Podrobný popis endpointu /oauth/token a jeho odpovědi najdete v sekci Přihlášení přes Seznam.

Pokud kvůli dřívější implementaci Přihlášení přes Seznam posíláte na endpoint /oauth/tokenredirect_uri, mějte na paměti, že v rámci FedCM se nepoužívá, proto redirect_uri v tomto případě neposílejte.

V odpovědi pak naleznete následující data:

accountDisplayName advert_user_id domain email firstname lastname message oauth_user_id status username

Poznámky