Interfaccia SSO Contatti
Questo articolo spiega come autenticare un contatto con un indirizzo email o un ID utente di terze parti. Utilizza lo stesso appId e la stessa Secret Key dell'interfaccia SSO delle sotto-utenze, ma l'URL, i campi della firma e la pagina di destinazione sono diversi. Crea le sotto-utenze e imposta i ruoli con l'interfaccia SSO delle sotto-utenze.
Panoramica
Invia l'email del contatto o l'ID utente di terze parti. SurveyMars verifica la firma e autentica quel contatto.
- Se il contatto è una sotto-utenza, SurveyMars apre returnUrl. Se returnUrl viene omesso, apre l'elenco dei sondaggi.
- Se il contatto non è una sotto-utenza, SurveyMars ignora returnUrl e apre la pagina principale del contatto.
Casi d'uso
- Il tuo sistema dispone già dell'email di un contatto o di un ID utente di terze parti e desideri l'accesso a SurveyMars senza password.
- Un contatto sotto-utenza arriva su returnUrl. Gli altri contatti ignorano returnUrl e arrivano alla pagina principale del contatto.
Prima di iniziare
1. Accedi con l'account principale e copia appId da Il mio account.
2. Chiedi al supporto di abilitare la Secret Key. Usa la chiave solo sul tuo server. Non inserirla nell'URL né nel codice front-end.
3. Genera la firma SHA256 sul tuo server, quindi apri il link di accesso con GET.

Richiesta
Metodo: GET
| Parametro | Obbligatorio | Descrizione |
| appId | Sì | ID dell'account principale. Usa lo stesso appId dell'interfaccia SSO delle sotto-utenze. |
| Condizionale | Email del contatto. Fornisci email o thirdUserId, o entrambi. email è obbligatorio quando l'account principale non ha consentito un'email del contatto vuota. | |
| thirdUserId | Condizionale | ID utente di terze parti. Fornisci email o thirdUserId, o entrambi. Se vengono inviati entrambi, la verifica usa solo email. thirdUserId partecipa comunque alla firma. |
| language | No | Lingua dei messaggi di prompt. Non partecipa alla firma. |
| returnUrl | No | Pagina da aprire dopo l'accesso di una sotto-utenza. SurveyMars la segue per un contatto sotto-utenza e la ignora in caso contrario. Non partecipa alla firma. |
| ts | Sì | Secondi trascorsi dal 1970-01-01 00:00:00 UTC. Rimane valido per 60 secondi. Il ts nell'URL deve corrispondere al ts usato nella firma. Generalo quando l'utente sta per aprire il link. |
| sign | Sì | Firma. sign è l'SHA256 esadecimale in minuscolo del testo in chiaro concatenato: appId + email + thirdUserId + ts + Secret Key. L'ordine deve corrispondere esattamente. La Secret Key viene concatenata solo sul server e non deve comparire nella barra degli indirizzi del browser. Vedi Crea la firma qui sotto. |
Crea la firma
Regole della firma
1. Concatena i campi della firma in un ordine fisso senza separatori: appId + email + thirdUserId + ts + Secret Key. Se email o thirdUserId vengono omessi, usa una stringa vuota in quella posizione. Non eliminare il campo e non sostituirlo con un segnaposto. La Secret Key viene concatenata solo sul server e non deve comparire nella barra degli indirizzi del browser.
2. Calcola l'hash di quella stringa con SHA256 e usa il valore esadecimale minuscolo come sign.
3. language e returnUrl non partecipano alla firma. Usa solo i campi e l'ordine del passaggio 1.
4. ts è il numero di secondi trascorsi dal 1970-01-01 00:00:00 UTC. Rimane valido per 60 secondi. Genera ts e sign quando l'utente sta per aprire il link e usa lo stesso ts nell'URL. La codifica URL non deve modificare i valori originali usati nella firma.
5. Per verificare la stringa concatenata, incollala in uno strumento SHA256 come LZL online SHA256. In produzione, genera sign sul tuo server. Non esporre la Secret Key al browser.
6. Non riutilizzare una firma SSO per sotto-utenze. Quella stringa usa appId, email, userName, roleId e ts. Questa interfaccia non usa userName né roleId.
Ad esempio:
http://surveymars.com/app/login/contact/verify?appId=TTeEB8&[email protected]&ts=1790760357&language=2&returnUrl=https://surveymars.com/app/usercenter&sign=26c0c7d9da5e38c61d4aeecb223336d7a259cad0b75c8ff912855421fd832a4e
Email e ID utente di terze parti
1. Invia almeno uno tra email e thirdUserId.
2. Se invii entrambi, la verifica usa email e ignora thirdUserId. Mantieni il thirdUserId originale nella firma e puoi mantenerlo anche nell'URL.
3. Se l'account principale non ha consentito un'email del contatto vuota, email è obbligatorio.
4. Se questa impostazione è disattivata, contatta il supporto per attivare "Consenti email del contatto vuota." Una volta attivata, puoi aggiungere un contatto senza email.
Dove approda il contatto
1. Contatto sotto-utenza: SurveyMars apre returnUrl. Se returnUrl viene omesso, apre l'elenco dei sondaggi.
2. Altri contatti: SurveyMars ignora returnUrl e apre la pagina principale del contatto.
Note importanti
- Conserva la Secret Key sul tuo server. Non inserirla nella barra degli indirizzi del browser.
- Questa interfaccia autentica un contatto. Non crea una sotto-utenza né imposta un ruolo per una sotto-utenza.
- Codifica nell'URL caratteri come @ nell'email. Firma il valore originale, non quello codificato.
Domande frequenti
In cosa differisce dall'SSO per sotto-utenze?
L'SSO per sotto-utenze usa /app/login/sso/verify per creare o autenticare una sotto-utenza. L'accesso dei contatti usa /app/login/contact/verify con un'email o un ID utente di terze parti. I campi della firma sono diversi. Non riutilizzare sign.
Posso inviare solo thirdUserId?
Sì, se l'account principale consente un'email del contatto vuota. Altrimenti email è obbligatorio. Usa una stringa vuota per il campo omesso nella firma.
Ho inviato sia email sia thirdUserId. Perché l'accesso usa l'email?
Quando sono presenti entrambi, la verifica ignora thirdUserId e abbina il contatto tramite email. thirdUserId partecipa comunque alla firma.
Perché un contatto che non è una sotto-utenza ha saltato returnUrl?
returnUrl si applica solo quando il contatto è una sotto-utenza. Altrimenti SurveyMars lo ignora e apre la pagina principale del contatto.
Perché la verifica della firma fallisce?
Controlla la Secret Key. Concatena appId, email, thirdUserId, ts e la Secret Key in quest'ordine. Usa una stringa vuota per un email o thirdUserId omesso. Conferma che ts sia ancora entro 60 secondi e che la codifica URL non abbia modificato i valori originali. Non includere language o returnUrl.
Perché ts scade così in fretta?
In produzione, ts deve essere entro 60 secondi dall'ora del server. Genera ts e sign quando l'utente sta per aprire il link.