მომხმარებლის მონაცემები (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, 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.
email 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); პირად ნომერს და საბაჟოსთვის საჭირო მონაცემებს ჩვენ თავად მივაბამთ.
შემდეგი შემდეგი ნაბიჯი: გამოსვლა