Dla firm
Dokumentacja
elogowanie.pl jest zwyklym dostawca OpenID Connect. Jesli Twoja biblioteka umie Discovery, integracja to wpisanie jednego adresu.
Punkty koncowe
issuer: https://elogowanie.pl
discovery: https://elogowanie.pl/.well-known/openid-configuration
authorization: https://elogowanie.pl/oauth2/auth
token: https://elogowanie.pl/oauth2/token
userinfo: https://elogowanie.pl/oauth2/userinfo
jwks: https://elogowanie.pl/oauth2/jwks
revocation: https://elogowanie.pl/oauth2/revoke
introspection: https://elogowanie.pl/oauth2/introspect
Obslugiwany przeplyw: authorization code. PKCE wymagane dla klientow
publicznych, zalecane dla wszystkich. Response type: code.
Refresh token: dopisz zakres offline_access
oraz parametr prompt=consent. Bez prompt=consent
specyfikacja OIDC kaze zignorowac offline_access i dostaniesz sam
access token na godzine. Refresh tokeny wydajemy tylko klientom serwerowym.
Zakresy
| Zakres | Co dostajesz | Uwagi |
|---|---|---|
openid | sub | Wymagany. Pseudonim rozny w kazdej aplikacji. |
profile | name, given_name, family_name | Wraz z poziomem potwierdzenia. |
email | email, email_verified | Zawsze alias @elogowanie.pl. |
age | age, age_over_18 | Bez daty urodzenia. |
birthdate | birthdate | Dane wrazliwe. |
phone | phone_number | Dane wrazliwe. |
address | address | Wymaga zweryfikowanej firmy. |
document | document_verified, document_type | Wymaga zweryfikowanej firmy. Numeru dokumentu nie przekazujemy. |
pesel | pesel | Wymaga zweryfikowanej firmy i podstawy prawnej. |
Poziom potwierdzenia danych
Kazda odpowiedz z /oauth2/userinfo zawiera elg_verification: mape claim → poziom.
{
"sub": "hK3n9...",
"name": "Anna Kowalska",
"given_name": "Anna",
"family_name": "Kowalska",
"email": "a7k3m9x2q4pv@elogowanie.pl",
"email_verified": true,
"age": 34,
"age_over_18": true,
"elg_verification": {
"given_name": "DOCUMENT",
"family_name": "DOCUMENT",
"age": "DOCUMENT",
"email": "OTP"
}
}
SELF - uzytkownik wpisal sam ·
OTP - potwierdzone kodem ·
DOCUMENT - zgodne ze zweryfikowanym dokumentem tozsamosci ·
AUTHORITY - potwierdzone przez rejestr.
Jesli Twoj proces wymaga pewnosci, sprawdzaj to pole, nie sama obecnosc claimu.
Adres e-mail
Nigdy nie dostajesz prawdziwego adresu uzytkownika. Dostajesz alias w domenie elogowanie.pl, ktory dziala jak normalna skrzynka: piszesz na niego, poczta trafia do uzytkownika. Nie musisz nic zmieniac w swoim systemie mailingowym.
Domyslnie kazda aplikacja dostaje inny alias tej samej osoby.
Uzytkownik moze wylaczyc alias - wtedy Twoja poczta przestaje byc przekazywana. Stan sprawdzisz w
GET /api/v1/apps/{id}/authorizations(email_active).Cofniecie zgody wylacza alias automatycznie.
Nie probuj wysylac z adresu @elogowanie.pl - domena ma SPF, DKIM i DMARC.
REST API firmy
Uwierzytelnianie: Authorization: Bearer elg_live_... (klucz z panelu firmy).
GET /api/v1/me
GET /api/v1/scopes
GET /api/v1/apps
POST /api/v1/apps { name, redirect_uris[], scopes[] }
GET /api/v1/apps/{id}
PATCH /api/v1/apps/{id}
POST /api/v1/apps/{id}/rotate-secret
GET /api/v1/apps/{id}/authorizations
Endpoint authorizations zwraca wylacznie pseudonimy i aliasy -
zadnych danych osobowych.
Serwer MCP
To samo API wystawiamy jako serwer MCP, zeby asystent AI mogl zalozyc integracje bez klikania w panelu.
{
"mcpServers": {
"elogowanie": {
"type": "http",
"url": "https://mcp.elogowanie.pl/mcp",
"headers": { "Authorization": "Bearer elg_live_..." }
}
}
}
Narzedzia:
lista_aplikacji utworz_aplikacje szczegoly_aplikacji zaktualizuj_aplikacje wymien_sekret lista_zakresow uzytkownicy_aplikacji przyklad_integracji info_o_firmie
Przyklad - Node.js
// wymiana kodu na tokeny
const res = await fetch('https://elogowanie.pl/oauth2/token', {
method: 'POST',
headers: {
'content-type': 'application/x-www-form-urlencoded',
authorization: 'Basic ' + Buffer.from(`${clientId}:${clientSecret}`).toString('base64'),
},
body: new URLSearchParams({
grant_type: 'authorization_code',
code,
redirect_uri: 'https://twojsklep.pl/callback',
code_verifier: verifier,
}),
})
const { access_token, id_token } = await res.json()
// dane uzytkownika
const me = await fetch('https://elogowanie.pl/oauth2/userinfo', {
headers: { authorization: `Bearer ${access_token}` },
}).then((r) => r.json())