Müşteri Adına Oturum Açma
Kendi sisteminizden bir müşteriye giriş yapılmış oturum devredin; parolasını hiç görmeden.
Genel Bakış
İki uç, müşterinin sizin sisteminizden kendi paneline geçtiği anı karşılar.
Ziyaretçinin kim olduğunu zaten biliyorsanız ikincisini kullanın: kendi portalınız, bir kontrol paneli, bir destek aracı. Birincisi yalnız parolayı siz soruyorsanız gerekir.
Ön Koşullar
Clients/ValidateClient ve Clients/CreateClientSsoToken. Yalnız kullandığınızı verin.
Yapı
Bilet bir veri paketi değil, rastgele bir gizli değerdir. Girişin ihtiyaç duyduğu her şey — son geçerlilik ve inilecek sayfa — hesapta saklanır. Böylece çağıranın eline geçen değer başka bir hedefe ya da daha uzun bir süreye çevrilemez.
Adım Adım
Müşteriyi İçeri Almak
- Sisteminiz bu ziyaretçinin hangi müşteri olduğuna karar verir. O müşterinin kimliğiyle
POST /clients/ssoçağırın. Yanıttatoken,urlveexpires_atdöner. - Ziyaretçiyi hemen
urladresine yönlendirin. Sonrası için bağlantı olarak göstermeyin — bilet 60 saniye geçerlidir. - Ziyaretçi giriş yapmış olarak varır; panosuna ya da
destinationile belirttiğiniz sayfaya. Bilet harcanmıştır, aynı adres ikinci kez çalışmaz.
İnilecek Sayfayı Seçmek
destinationvermezseniz müşteri panosuna iner.- Daha derine indirmek için route anahtarını parametreleriyle gönderin:
"destination": "services", "destination_values": [128]. - Mutlak adres de çalışır, yeter ki bu kuruluma ait olsun. Başka bir yeri gösteren adres yok sayılır ve müşteri panosuna iner.
Referans
Bilet İsteği
user_id eski adı olarak da kabul edilir.
destination bir route anahtarıysa route parametreleri.
Biletin Davranışı
Alan tabloları, hata kodları ve yanıt şekilleri clients uç referansındadır.
Örnek
curl -X POST 'https://panel.example.com/api/v1/admin/clients/sso' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"client_id":64,"destination":"services","destination_values":[128]}'const res = await fetch('https://panel.example.com/api/v1/admin/clients/sso', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
client_id: 64,
destination: 'services',
destination_values: [128],
}),
});
const body = await res.json();
// Yonlendirmeyi anahtari tutan sunucudan yapin, ziyaretcinin tarayicisindan degil:
// bilet bir kimlik bilgisidir, guvenilmeyen koddan gecmemelidir.
res.ok && console.log(body.data.url);<?php
$ch = curl_init('https://panel.example.com/api/v1/admin/clients/sso');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['client_id' => 64]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Ziyaretciyi hemen gonderin; bilet 60 saniye sonra gecersiz olur.
header('Location: ' . $body['data']['url']);
exit;$response = Api::Clients()->CreateClientSsoToken([
'client_id' => 64,
'destination' => 'services',
'destination_values' => [128],
]);
// Anahtar yok, HTTP turu yok — ayni kaynak, surec icinde cagrilir.
Utility::redirect($response['data']['url']);Tuzaklar
Bilet bir kimlik bilgisidir. Adresi açan kişi o müşteri olur. Kayda geçirmeyin, e-postayla göndermeyin, üçüncü kişinin okuyabileceği bir sayfaya koymayın.
Önceden bilet üretmeyin. Bilet 60 saniye yaşar ve müşteri aynı anda bir tane taşır; toplu üretim elinizde tek çalışan bilet bırakır.
Doğrulama kimseyi içeri almaz. Yalnız parolanın eşleşip eşleşmediğini söyler. Oturum istiyorsanız ardından bilet üretin.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.