Antara Muka Kenalan SSO
Artikel ini menerangkan cara melog masuk kenalan menggunakan alamat e-mel atau ID pengguna pihak ketiga. Ia menggunakan appId dan Secret Key yang sama seperti antara muka SSO sub-akaun, tetapi URL, medan tandatangan dan halaman destinasi adalah berbeza. Cipta sub-akaun dan tetapkan peranan dengan antara muka SSO sub-akaun.
Gambaran Keseluruhan
Hantar e-mel kenalan atau ID pengguna pihak ketiga. SurveyMars menyemak tandatangan dan melog masuk kenalan itu.
- Jika kenalan ialah sub-akaun, SurveyMars membuka returnUrl. Jika returnUrl tidak disertakan, ia membuka senarai kaji selidik.
- Jika kenalan bukan sub-akaun, SurveyMars mengabaikan returnUrl dan membuka halaman utama kenalan.
Kes Penggunaan
- Sistem anda sudah mempunyai e-mel kenalan atau ID pengguna pihak ketiga, dan anda mahu akses tanpa kata laluan ke SurveyMars.
- Kenalan sub-akaun mendarat pada returnUrl. Kenalan lain melangkau returnUrl dan mendarat pada halaman utama kenalan.
Sebelum Anda Bermula
1. Log masuk dengan akaun utama dan salin appId daripada Akaun Saya.
2. Minta sokongan untuk mengaktifkan Secret Key. Gunakan kunci itu hanya di pelayan anda. Jangan letakkan di URL atau dalam kod bahagian hadapan.
3. Bina tandatangan SHA256 di pelayan anda, kemudian buka pautan log masuk dengan GET.

Permintaan
Kaedah: GET
| Parameter | Diperlukan | Penerangan |
| appId | Ya | ID akaun utama. Gunakan appId yang sama seperti antara muka SSO sub-akaun. |
| Bersyarat | E-mel kenalan. Sediakan email atau thirdUserId, atau kedua-duanya. email diperlukan apabila akaun utama belum membenarkan e-mel kenalan kosong. | |
| thirdUserId | Bersyarat | ID pengguna pihak ketiga. Sediakan email atau thirdUserId, atau kedua-duanya. Jika kedua-duanya dihantar, pengesahan hanya menggunakan email. thirdUserId masih disertakan dalam tandatangan. |
| language | Tidak | Bahasa mesej prompt. Ia tidak disertakan dalam tandatangan. |
| returnUrl | Tidak | Halaman untuk dibuka selepas sub-akaun log masuk. SurveyMars mengikutinya untuk kenalan sub-akaun dan mengabaikannya dalam kes lain. Ia tidak disertakan dalam tandatangan. |
| ts | Ya | Saat sejak 1970-01-01 00:00:00 UTC. Ia sah selama 60 saat. ts dalam URL mesti sepadan dengan ts yang digunakan dalam tandatangan. Jana ia apabila pengguna hampir membuka pautan. |
| sign | Ya | Tandatangan. sign ialah SHA256 heksadesimal huruf kecil bagi teks biasa yang digabungkan: appId + email + thirdUserId + ts + Secret Key. Susunan mesti sepadan dengan tepat. Secret Key hanya digabungkan di pelayan dan tidak boleh muncul dalam bar alamat penyemak imbas. Lihat Bina Tandatangan di bawah. |
Bina Tandatangan
Peraturan tandatangan
1. Gabungkan medan tandatangan dalam susunan tetap tanpa pemisah: appId + email + thirdUserId + ts + Secret Key. Jika email atau thirdUserId tidak disertakan, gunakan rentetan kosong pada kedudukan itu. Jangan buang medan tersebut, dan jangan gantikannya dengan placeholder. Secret Key hanya digabungkan di pelayan dan tidak boleh muncul dalam bar alamat penyemak imbas.
2. Hasilkan hash rentetan itu dengan SHA256 dan gunakan nilai heksadesimal huruf kecil sebagai sign.
3. language dan returnUrl tidak disertakan dalam tandatangan. Gunakan hanya medan dan susunan dalam langkah 1.
4. ts ialah bilangan saat sejak 1970-01-01 00:00:00 UTC. Ia sah selama 60 saat. Jana ts dan sign apabila pengguna hampir membuka pautan, dan gunakan ts yang sama dalam URL. Pengekodan URL tidak boleh mengubah nilai asal yang digunakan dalam tandatangan.
5. Untuk menyemak rentetan yang digabungkan, tampalkannya ke dalam alat SHA256 seperti LZL SHA256 dalam talian. Dalam persekitaran pengeluaran, jana sign pada pelayan anda. Jangan dedahkan Secret Key kepada penyemak imbas.
6. Jangan guna semula tandatangan SSO sub-akaun. Rentetan itu menggunakan appId, email, userName, roleId dan ts. Antara muka ini tidak menggunakan userName atau roleId.
Sebagai contoh:
http://surveymars.com/app/login/contact/verify?appId=TTeEB8&[email protected]&ts=1790760357&language=2&returnUrl=https://surveymars.com/app/usercenter&sign=26c0c7d9da5e38c61d4aeecb223336d7a259cad0b75c8ff912855421fd832a4e
E-mel dan ID Pengguna Pihak Ketiga
1. Hantar sekurang-kurangnya satu daripada email dan thirdUserId.
2. Jika anda menghantar kedua-duanya, pengesahan menggunakan email dan mengabaikan thirdUserId. Kekalkan thirdUserId asal dalam tandatangan, dan anda boleh mengekalkannya dalam URL.
3. Jika akaun utama belum membenarkan e-mel kenalan kosong, email diperlukan.
4. Jika tetapan ini dimatikan, hubungi sokongan untuk menghidupkan "Allow empty contact email." Selepas ia dihidupkan, anda boleh menambah kenalan tanpa e-mel.
Di Mana Kenalan Mendarat
1. Kenalan sub-akaun: SurveyMars membuka returnUrl. Jika returnUrl tidak disertakan, ia membuka senarai kaji selidik.
2. Kenalan lain: SurveyMars mengabaikan returnUrl dan membuka halaman utama kenalan.
Nota Penting
- Simpan Secret Key di pelayan anda. Jangan letakkannya dalam bar alamat penyemak imbas.
- Antara muka ini melog masuk kenalan. Ia tidak mencipta sub-akaun atau menetapkan peranan sub-akaun.
- URL-enkod aksara seperti @ dalam e-mel. Tandatangani nilai asal, bukan nilai yang dienkod.
Soalan Lazim
Bagaimanakah ini berbeza daripada SSO sub-akaun?
SSO sub-akaun menggunakan /app/login/sso/verify untuk mencipta atau melog masuk sub-akaun. Log masuk kenalan menggunakan /app/login/contact/verify dengan e-mel atau ID pengguna pihak ketiga. Medan tandatangan adalah berbeza. Jangan guna semula sign.
Bolehkah saya menghantar hanya thirdUserId?
Ya, jika akaun utama membenarkan e-mel kenalan kosong. Jika tidak, email diperlukan. Gunakan rentetan kosong untuk medan yang tidak disertakan dalam tandatangan.
Saya menghantar email dan thirdUserId. Mengapa log masuk menggunakan email?
Apabila kedua-duanya hadir, pengesahan mengabaikan thirdUserId dan memadankan kenalan melalui email. thirdUserId masih disertakan dalam tandatangan.
Mengapa kenalan yang bukan sub-akaun melangkau returnUrl?
returnUrl hanya digunakan apabila kenalan ialah sub-akaun. Jika tidak, SurveyMars mengabaikannya dan membuka halaman utama kenalan.
Mengapa pengesahan tandatangan gagal?
Semak Secret Key. Gabungkan appId, email, thirdUserId, ts dan Secret Key dalam susunan itu. Gunakan rentetan kosong untuk email atau thirdUserId yang tidak disertakan. Sahkan bahawa ts masih dalam 60 saat, dan pengekodan URL tidak mengubah nilai asal. Jangan sertakan language atau returnUrl.
Mengapa ts tamat terlalu cepat?
Dalam persekitaran pengeluaran, ts mesti berada dalam lingkungan 60 saat daripada masa pelayan. Jana ts dan sign apabila pengguna hampir membuka pautan.