06 — Kullanıcı Bilgisi ve Claimler
Kimin için: Kullanıcı profilini ve yetkilerini yöneten geliştiriciler.
Ön koşul: Tokenlar ve Oturum Yönetimi.
Tahmini süre: 10 dakika.
Ne Öğreneceksiniz
- OIDC Scope ve Claim eşleşmelerini,
- Kullanıcı kalıcı kimliği (
sub) ile yerel hesap eşleştirme kurallarını, /oauth/userinfouç noktasından güncel profil verilerini çekmeyi.
Scope ve Claim Eşleşme Tablosu
Giriş akışında talep edilen her scope, kullanıcı hakkında belirli bilgi alanlarının (claim) açılmasını sağlar:
| Scope | Açılan Claim'ler | Tip | Açıklama |
|---|---|---|---|
openid |
sub |
string |
Kullanıcının kalıcı, değişmez benzersiz UUID kimliğidir. |
email |
email |
string |
Kullanıcının e-posta adresi. |
email_verified |
boolean |
E-postanın doğrulanmış olup olmadığı. | |
profile |
name |
string |
Kullanıcının tam adı (Ad + Soyad). |
given_name |
string |
Kullanıcının ilk adı. | |
family_name |
string |
Kullanıcının soyadı. | |
picture |
string (URL) |
Profil fotoğrafı / avatar bağlantısı. | |
preferred_username |
string |
Tercih edilen kullanıcı adı veya unvanı. | |
subscription |
subscription |
object |
Kullanıcının bu uygulamadaki aktif abonelik durumu ve planı. |
Örnek Userinfo Yanıtı (`GET /oauth/userinfo`)
Access token ile yapılan istekte dönen standart JSON gövdesi:
json
{
"sub": "usr_94b8e21c-3085-48fa-9549-a1d29381e4ab",
"name": "Zeynep Kaya",
"given_name": "Zeynep",
"family_name": "Kaya",
"email": "zeynep.kaya@example.com",
"email_verified": true,
"picture": "https://id.talost.com/avatars/usr_94b8e21c.png",
"subscription": {
"status": "ACTIVE",
"plan_code": "pro_monthly",
"plan_name": "Profesyonel Plan",
"ends_at": "2026-11-04T12:00:00.000Z"
}
}
Kod Örneği: Userinfo Çağrısı
TypeScript (Fetch API)
typescript
export async function fetchUserProfile(accessToken: string) {
const res = await fetch(`${process.env.TALOST_ISSUER}/oauth/userinfo`, {
headers: {
Authorization: `Bearer ${accessToken}`,
},
});
if (!res.ok) {
if (res.status === 401) throw new Error("Oturum süresi doldu (Token geçersiz).");
throw new Error("Kullanıcı bilgisi alınamadı.");
}
const profile = await res.json();
return profile;
}
Veritabanında Kullanıcı Eşleme Kuralı
Kalıcı Kimlik Kuralı
Uygulamanızın yerel veritabanında kullanıcıları kesinlikle **e-posta adresine göre değil, `sub` alanına göre bağlayın**. Kullanıcılar şirket değiştirebilir veya TALOST ID panelinden e-posta adreslerini güncelleyebilirler. E-posta değiştiğinde `sub` değişmez; böylece kullanıcının verileri kaybolmaz.
Uygulamanızın yerel veritabanında kullanıcıları kesinlikle **e-posta adresine göre değil, `sub` alanına göre bağlayın**. Kullanıcılar şirket değiştirebilir veya TALOST ID panelinden e-posta adreslerini güncelleyebilirler. E-posta değiştiğinde `sub` değişmez; böylece kullanıcının verileri kaybolmaz.
İlgili Sayfalar
Son doğrulama: 2026-10-04 · Kaynak: _envanter.md, src/app/oauth/userinfo/route.ts
Son doğrulama: 2026-10-04 · Kaynak: `_envanter.md`, `src/app/oauth/userinfo/route.ts`