SSO İletişim Arayüzü
Bu makale, bir kişiyi e-posta adresi veya üçüncü taraf kullanıcı kimliği ile nasıl oturum açtıracağınızı açıklar. alt hesap SSO arayüzü ile aynı appId ve Secret Key'i kullanır; ancak URL, imza alanları ve açılış sayfası farklıdır. Alt hesap SSO arayüzünü kullanarak alt hesaplar oluşturun ve roller atayın.
Genel Bakış
Kişinin e-postasını veya üçüncü taraf kullanıcı kimliğini gönderin. SurveyMars imzayı doğrular ve o kişiyi oturum açtırır.
- Kişi bir alt hesapsa, SurveyMars returnUrl'yi açar. returnUrl belirtilmemişse, anket listesini açar.
- Kişi bir alt hesap değilse, SurveyMars returnUrl'yi yok sayar ve kişi ana sayfasını açar.
Kullanım Senaryoları
- Sisteminizde zaten bir kişi e-postası veya üçüncü taraf kullanıcı kimliği vardır ve SurveyMars'a şifresiz erişim istiyorsunuz.
- Bir alt hesap kişisi returnUrl'ye yönlenir. Diğer kişiler returnUrl'yi atlar ve kişi ana sayfasına gider.
Başlamadan Önce
1. Ana hesapla oturum açın ve Hesabım bölümünden appId'yi kopyalayın.
2. Secret Key'i etkinleştirmesi için destek ekibinden yardım isteyin. Anahtarı yalnızca sunucunuzda kullanın. URL'ye veya ön uç koduna koymayın.
3. SHA256 imzasını sunucunuzda oluşturun, ardından giriş bağlantısını GET ile açın.

İstek
Yöntem: GET
| Parametre | Gerekli | Açıklama |
| appId | Evet | Ana hesap kimliği. Alt hesap SSO arayüzüyle aynı appId'yi kullanın. |
| Koşullu | Kişi e-postası. E-posta veya thirdUserId gönderin ya da her ikisini gönderin. Ana hesap boş kişi e-postasına izin vermediyse email gereklidir. | |
| thirdUserId | Koşullu | Üçüncü taraf kullanıcı kimliği. E-posta veya thirdUserId gönderin ya da her ikisini gönderin. Her ikisi gönderilirse doğrulama yalnızca e-postayı kullanır. thirdUserId yine de imzaya dahil edilir. |
| language | Hayır | Uyarı mesajlarının dili. İmzaya dahil edilmez. |
| returnUrl | Hayır | Bir alt hesap oturum açtıktan sonra açılacak sayfa. SurveyMars bunu bir alt hesap kişisi için izler, aksi halde yok sayar. İmzaya dahil edilmez. |
| ts | Evet | 1970-01-01 00:00:00 UTC'den itibaren geçen saniye sayısı. 60 saniye boyunca geçerlidir. URL'deki ts, imzada kullanılan ts ile eşleşmelidir. Kullanıcı bağlantıyı açmak üzereyken oluşturun. |
| sign | Evet | İmza. sign, birleştirilmiş düz metnin küçük harf onaltılık SHA256 değeridir: appId + email + thirdUserId + ts + Secret Key. Sıra birebir aynı olmalıdır. Secret Key yalnızca sunucuda birleştirilir ve tarayıcı adres çubuğunda görünmemelidir. Aşağıdaki İmzayı Oluştur bölümüne bakın. |
İmzayı Oluştur
İmza kuralları
1. İmzalanacak alanları ayırıcı olmadan sabit bir sırayla birleştirin: appId + email + thirdUserId + ts + Secret Key. Email veya thirdUserId gönderilmezse, o konumda boş bir dize kullanın. Alanı atmayın ve bir yer tutucu ile değiştirmeyin. Secret Key yalnızca sunucuda birleştirilir ve tarayıcı adres çubuğunda görünmemelidir.
2. Bu dizeyi SHA256 ile hash'leyin ve küçük harfli onaltılık değeri sign olarak kullanın.
3. language ve returnUrl imzaya dahil edilmez. Yalnızca 1. adımdaki alanları ve sıralamayı kullanın.
4. ts, 1970-01-01 00:00:00 UTC'den bu yana geçen saniye sayısıdır. 60 saniye boyunca geçerlidir. Kullanıcı bağlantıyı açmak üzereyken ts ve sign oluşturun ve URL'de aynı ts'yi kullanın. URL kodlaması, imzada kullanılan orijinal değerleri değiştirmemelidir.
5. Birleştirilmiş dizeyi kontrol etmek için, bunu LZL çevrimiçi SHA256 gibi bir SHA256 aracına yapıştırın. Üretimde sign değerini sunucunuzda oluşturun. Secret Key'i tarayıcıya ifşa etmeyin.
6. Bir alt hesap SSO imzasını yeniden kullanmayın. Bu dize appId, email, userName, roleId ve ts kullanır. Bu arayüz userName veya roleId kullanmaz.
Örneğin:
http://surveymars.com/app/login/contact/verify?appId=TTeEB8&[email protected]&ts=1790760357&language=2&returnUrl=https://surveymars.com/app/usercenter&sign=26c0c7d9da5e38c61d4aeecb223336d7a259cad0b75c8ff912855421fd832a4e
E-posta ve Üçüncü Taraf Kullanıcı Kimliği
1. E-posta ve thirdUserId alanlarından en az birini gönderin.
2. Her ikisini de gönderirseniz, doğrulama e-postayı kullanır ve thirdUserId'yi yok sayar. Orijinal thirdUserId'yi imzada koruyun; isterseniz URL'de de tutabilirsiniz.
3. Ana hesap boş kişi e-postasına izin vermediyse, email gereklidir.
4. Bu ayar kapalıysa, "Boş kişi e-postasına izin ver" seçeneğini açması için destekle iletişime geçin. Açıldıktan sonra e-posta olmadan bir kişi ekleyebilirsiniz.
Kişinin Gideceği Yer
1. Alt hesap kişisi: SurveyMars returnUrl'yi açar. returnUrl belirtilmemişse, anket listesini açar.
2. Diğer kişiler: SurveyMars returnUrl'yi yok sayar ve kişi ana sayfasını açar.
Önemli Notlar
- Secret Key'i sunucunuzda saklayın. Tarayıcı adres çubuğuna koymayın.
- Bu arayüz bir kişiyi oturum açtırır. Bir alt hesap oluşturmaz veya bir alt hesap rolü atamaz.
- E-postadaki @ gibi karakterleri URL kodlamasıyla kodlayın. Kodlanmış değeri değil, orijinal değeri imzalayın.
SSS
Bunun alt hesap SSO'dan farkı nedir?
Alt hesap SSO, bir alt hesap oluşturmak veya oturum açtırmak için /app/login/sso/verify kullanır. Kişi oturumu açma işlemi, e-posta veya üçüncü taraf kullanıcı kimliği ile /app/login/contact/verify kullanır. İmza alanları farklıdır. sign'i yeniden kullanmayın.
Sadece thirdUserId gönderebilir miyim?
Evet, ana hesap boş kişi e-postasına izin veriyorsa. Aksi halde email gereklidir. İmzadaki atlanan alan için boş bir dize kullanın.
Hem email hem de thirdUserId gönderdim. Neden oturum açma email'i kullanıyor?
Her ikisi de mevcut olduğunda, doğrulama thirdUserId'yi yok sayar ve kişiyi e-posta ile eşleştirir. thirdUserId yine de imzaya dahil edilir.
Alt hesap olmayan bir kişi neden returnUrl'yi atladı?
returnUrl yalnızca kişi bir alt hesap olduğunda लागू edilir. Aksi halde SurveyMars bunu yok sayar ve kişi ana sayfasını açar.
İmza doğrulaması neden başarısız oluyor?
Secret Key'i kontrol edin. appId, email, thirdUserId, ts ve Secret Key'i bu sırayla birleştirin. Atlanan email veya thirdUserId için boş bir dize kullanın. ts'nin hâlâ 60 saniye içinde olduğunu ve URL kodlamasının orijinal değerleri değiştirmediğini doğrulayın. language veya returnUrl'yi eklemeyin.
ts neden bu kadar hızlı süresi doluyor?
Üretimde ts, sunucu zamanından itibaren 60 saniye içinde olmalıdır. Kullanıcı bağlantıyı açmak üzereyken ts ve sign oluşturun.