Antarmuka Kontak SSO
Artikel ini menjelaskan cara masuk sebagai kontak dengan alamat email atau ID pengguna pihak ketiga. Ini menggunakan appId dan Secret Key yang sama dengan antarmuka SSO sub-akun, tetapi URL, bidang tanda tangan, dan halaman tujuan berbeda. Buat sub-akun dan atur peran dengan antarmuka SSO sub-akun.
Ikhtisar
Kirim email kontak atau ID pengguna pihak ketiga. SurveyMars memeriksa tanda tangan dan memasukkan kontak tersebut.
- Jika kontak adalah sub-akun, SurveyMars membuka returnUrl. Jika returnUrl dihilangkan, SurveyMars membuka daftar survei.
- Jika kontak bukan sub-akun, SurveyMars mengabaikan returnUrl dan membuka halaman beranda kontak.
Kasus Penggunaan
- Sistem Anda sudah memiliki email kontak atau ID pengguna pihak ketiga, dan Anda ingin akses ke SurveyMars tanpa kata sandi.
- Kontak sub-akun mendarat di returnUrl. Kontak lain melewati returnUrl dan mendarat di halaman beranda kontak.
Sebelum Anda Memulai
1. Masuk dengan akun utama dan salin appId dari My Account.
2. Minta dukungan untuk mengaktifkan Secret Key. Gunakan kunci ini hanya di server Anda. Jangan letakkan di URL atau di kode front-end.
3. Buat tanda tangan SHA256 di server Anda, lalu buka tautan login dengan GET.

Permintaan
Metode: GET
| Parameter | Wajib | Deskripsi |
| appId | Ya | ID akun utama. Gunakan appId yang sama seperti antarmuka SSO sub-akun. |
| Bersyarat | Email kontak. Berikan email atau thirdUserId, atau keduanya. email diperlukan ketika akun utama belum mengizinkan email kontak kosong. | |
| thirdUserId | Bersyarat | ID pengguna pihak ketiga. Berikan email atau thirdUserId, atau keduanya. Jika keduanya dikirim, verifikasi hanya menggunakan email. thirdUserId tetap disertakan dalam tanda tangan. |
| language | Tidak | Bahasa pesan prompt. Ini tidak disertakan dalam tanda tangan. |
| returnUrl | Tidak | Halaman yang dibuka setelah sub-akun masuk. SurveyMars mengikutinya untuk kontak sub-akun dan mengabaikannya untuk lainnya. Ini tidak disertakan dalam tanda tangan. |
| ts | Ya | Detik sejak 1970-01-01 00:00:00 UTC. Nilainya tetap valid selama 60 detik. ts di URL harus cocok dengan ts yang digunakan dalam tanda tangan. Buat saat pengguna akan membuka tautan. |
| sign | Ya | Tanda tangan. sign adalah SHA256 heksadesimal huruf kecil dari plaintext gabungan: appId + email + thirdUserId + ts + Secret Key. Urutannya harus sama persis. Secret Key hanya digabungkan di server dan tidak boleh muncul di bilah alamat browser. Lihat Buat Tanda Tangan di bawah. |
Buat Tanda Tangan
Aturan tanda tangan
1. Gabungkan field penandatanganan dalam urutan tetap tanpa pemisah: appId + email + thirdUserId + ts + Secret Key. Jika email atau thirdUserId dihilangkan, gunakan string kosong pada posisinya. Jangan menghapus field, dan jangan menggantinya dengan placeholder. Secret Key hanya digabungkan di server dan tidak boleh muncul di bilah alamat browser.
2. Hash string tersebut dengan SHA256 dan gunakan nilai heksadesimal huruf kecil sebagai sign.
3. language dan returnUrl tidak disertakan dalam tanda tangan. Gunakan hanya field dan urutan pada langkah 1.
4. ts adalah jumlah detik sejak 1970-01-01 00:00:00 UTC. Nilainya tetap valid selama 60 detik. Buat ts dan sign saat pengguna akan membuka tautan, dan gunakan ts yang sama di URL. Pengodean URL tidak boleh mengubah nilai asli yang digunakan dalam tanda tangan.
5. Untuk memeriksa string gabungan, tempelkan ke alat SHA256 seperti LZL online SHA256. Dalam produksi, buat sign di server Anda. Jangan mengekspos Secret Key ke browser.
6. Jangan gunakan ulang tanda tangan SSO sub-akun. String tersebut menggunakan appId, email, userName, roleId, dan ts. Antarmuka 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
Email dan ID Pengguna Pihak Ketiga
1. Kirim setidaknya salah satu dari email dan thirdUserId.
2. Jika Anda mengirim keduanya, verifikasi menggunakan email dan mengabaikan thirdUserId. Pertahankan thirdUserId asli dalam tanda tangan, dan Anda boleh tetap menyimpannya di URL.
3. Jika akun utama belum mengizinkan email kontak kosong, email diperlukan.
4. Jika pengaturan ini nonaktif, hubungi dukungan untuk mengaktifkan "Allow empty contact email." Setelah aktif, Anda dapat menambahkan kontak tanpa email.
Tujuan Kontak Mendarat
1. Kontak sub-akun: SurveyMars membuka returnUrl. Jika returnUrl dihilangkan, SurveyMars membuka daftar survei.
2. Kontak lain: SurveyMars mengabaikan returnUrl dan membuka halaman beranda kontak.
Catatan Penting
- Simpan Secret Key di server Anda. Jangan letakkan di bilah alamat browser.
- Antarmuka ini memasukkan kontak. Ini tidak membuat sub-akun atau menetapkan peran sub-akun.
- Lakukan URL-encode pada karakter seperti @ dalam email. Tanda tangani nilai asli, bukan nilai yang sudah dienkode.
FAQ
Apa bedanya ini dengan SSO sub-akun?
SSO sub-akun menggunakan /app/login/sso/verify untuk membuat atau masuk sebagai sub-akun. Masuk sebagai kontak menggunakan /app/login/contact/verify dengan email atau ID pengguna pihak ketiga. Bidang tanda tangannya berbeda. Jangan gunakan ulang sign.
Bisakah saya hanya mengirim thirdUserId?
Ya, jika akun utama mengizinkan email kontak kosong. Jika tidak, email diperlukan. Gunakan string kosong untuk field yang dihilangkan dalam tanda tangan.
Saya mengirim email dan thirdUserId. Mengapa masuk menggunakan email?
Saat keduanya ada, verifikasi mengabaikan thirdUserId dan mencocokkan kontak berdasarkan email. thirdUserId tetap disertakan dalam tanda tangan.
Mengapa kontak yang bukan sub-akun melewati returnUrl?
returnUrl hanya berlaku ketika kontak adalah sub-akun. Jika tidak, SurveyMars mengabaikannya dan membuka halaman beranda kontak.
Mengapa verifikasi tanda tangan gagal?
Periksa Secret Key. Gabungkan appId, email, thirdUserId, ts, dan Secret Key dalam urutan tersebut. Gunakan string kosong untuk email atau thirdUserId yang dihilangkan. Pastikan ts masih dalam 60 detik, dan bahwa pengodean URL tidak mengubah nilai asli. Jangan sertakan language atau returnUrl.
Mengapa ts kedaluwarsa begitu cepat?
Dalam produksi, ts harus berada dalam 60 detik dari waktu server. Buat ts dan sign saat pengguna akan membuka tautan.