მომხმარებლის მონაცემები (Scope-ები და Claim-ები)
რა მონაცემს მიიღებთ, განისაზღვრება scope-ებით. ერთი და იგივე claim-ები ბრუნდება id_token-ში და /userinfo-ში. id_token ასახავს შესვლის მომენტს, /userinfo — მიმდინარე მდგომარეობას.
Scope-ები
| Scope | აღწერა | Claims |
|---|---|---|
| openid | სავალდებულო. ააქტიურებს OpenID Connect-ს და id_token-ს. | sub |
| profile | სახელი, გვარი და ენა. | given_name, family_name, name, locale |
| ელ. ფოსტა და მისი დადასტურების სტატუსი. | email, email_verified |
|
| phone | ტელეფონი და მისი დადასტურების სტატუსი. | phone_number, phone_number_verified |
თქვენი client-ისთვის ხელმისაწვდომი scope-ები რეგისტრაციისას ფიქსირდება. თუ მოთხოვნაში მეტს ან ნაკლებს მიუთითებთ, მიიღებთ ზუსტად თქვენთვის კონფიგურირებულ სიას. ახალი scope-ის საჭიროების შემთხვევაში დაგვიკავშირდით.
Claim-ები
| Claim | ტიპი | აღწერა |
|---|---|---|
| sub | string (UUID) | მომხმარებლის მუდმივი, უნიკალური იდენტიფიკატორი. გამოიყენეთ ამანათის შექმნისას receiver.inexUserId-ში. |
| given_name | string | სახელი (ლათინური ასოებით). |
| family_name | string | გვარი (ლათინური ასოებით). |
| name | string | სრული სახელი. |
| locale | string|null | მომხმარებლის სასურველი ენა: ka, en ან ru. |
| string|null | ელ. ფოსტა. ერთი ელ. ფოსტა = ერთი INEX ანგარიში. | |
| email_verified | boolean | დადასტურებულია თუ არა ელ. ფოსტა. |
| phone_number | string|null | ტელეფონი საერთაშორისო ფორმატში, მაგ. 995599123456. |
| phone_number_verified | boolean | დადასტურებულია თუ არა ტელეფონი. |
| auth_time | integer | (მხოლოდ id_token-ში) Unix დრო, როდესაც მომხმარებელმა ბოლოს გაიარა ავტორიზაცია. |
| nonce | string | (მხოლოდ id_token-ში) authorize მოთხოვნაში გაგზავნილი nonce. |
/userinfo
GET
{issuer}/userinfo
GET {issuer}/userinfo ჰედერით Authorization: Bearer {access_token} აბრუნებს მომხმარებლის მიმდინარე მონაცემებს JSON ობიექტად (მხოლოდ იმ claim-ებს, რომლის scope-იც ტოკენს აქვს). გამოიყენეთ, როცა გინდათ განაახლოთ შენახული სახელი, ელ. ფოსტა ან ტელეფონი.
მომხმარებლის იდენტიფიკაციის წესები
-
ლოკალურ მომხმარებელს აბამთ მხოლოდ
sub-ით. - ელ. ფოსტა და ტელეფონი შეიძლება შეიცვალოს; ტელეფონი უნიკალური არ არის (ერთი ნომერი შეიძლება რამდენიმე ანგარიშს ჰქონდეს). მათ საიდენტიფიკაციო გასაღებად ნუ გამოიყენებთ.
-
თუ არსებულ ლოკალურ ანგარიშს ელ. ფოსტით აბამთ, ჯერ შეამოწმეთ
email_verified = true.
პირადი ნომერი
პირადი ნომერი claim-ად არ გაიცემა — ის პერსონალური მონაცემია და თქვენ ის არ გჭირდებათ: INEX-მა ის უკვე იცის. ამანათის შექმნისას საკმარისია
sub (receiver.inexUserId); პირად ნომერს და საბაჟოსთვის საჭირო მონაცემებს ჩვენ თავად მივაბამთ.
Userinfo (cURL)
BASH
curl https://id-staging.inex.ge/userinfo \
-H "Authorization: Bearer ACCESS_TOKEN"
Response (200 OK)
JSON
{
"sub": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"given_name": "Nino",
"family_name": "Beridze",
"name": "Nino Beridze",
"locale": "ka",
"email": "nino@example.com",
"email_verified": true,
"phone_number": "995599123456",
"phone_number_verified": true
}