SSO-contactinterface
Dit artikel legt uit hoe u een contact kunt aanmelden met een e-mailadres of een gebruikers-ID van een derde partij. Het gebruikt dezelfde appId en Secret Key als de SSO-interface voor subaccounts, maar de URL, handtekeningvelden en landingspagina zijn anders. Maak subaccounts aan en stel rollen in met de SSO-interface voor subaccounts.
Overzicht
Stuur het e-mailadres van het contact of de gebruikers-ID van een derde partij. SurveyMars controleert de handtekening en meldt dat contact aan.
- Als het contact een subaccount is, opent SurveyMars returnUrl. Als returnUrl ontbreekt, wordt de enquête-lijst geopend.
- Als het contact geen subaccount is, negeert SurveyMars returnUrl en opent de startpagina van het contact.
Gebruikssituaties
- Uw systeem heeft al een e-mailadres of gebruikers-ID van een derde partij, en u wilt toegang tot SurveyMars zonder wachtwoord.
- Een subaccount-contact komt terecht op returnUrl. Andere contacten slaan returnUrl over en komen op de startpagina van het contact terecht.
Voordat u begint
1. Meld u aan met het hoofdaccount en kopieer appId uit Mijn account.
2. Vraag de support om de Secret Key in te schakelen. Gebruik de sleutel alleen op uw server. Plaats hem niet in de URL of in front-endcode.
3. Bouw de SHA256-handtekening op uw server en open daarna de inloglink met GET.

Verzoek
Methode: GET
| Parameter | Vereist | Beschrijving |
| appId | Ja | ID van het hoofdaccount. Gebruik dezelfde appId als de SSO-interface voor subaccounts. |
| Voorwaardelijk | E-mailadres van het contact. Geef email of thirdUserId op, of beide. email is vereist wanneer het hoofdaccount geen leeg contact-e-mailadres toestaat. | |
| thirdUserId | Voorwaardelijk | Gebruikers-ID van een derde partij. Geef email of thirdUserId op, of beide. Als beide worden verzonden, gebruikt de verificatie alleen email. thirdUserId wordt nog steeds opgenomen in de handtekening. |
| language | Nee | Taal van de promptberichten. Dit wordt niet opgenomen in de handtekening. |
| returnUrl | Nee | Pagina die wordt geopend nadat een subaccount zich heeft aangemeld. SurveyMars volgt deze voor een contact van een subaccount en negeert deze anders. Dit wordt niet opgenomen in de handtekening. |
| ts | Ja | Seconden sinds 1970-01-01 00:00:00 UTC. Geldig gedurende 60 seconden. De ts in de URL moet overeenkomen met de ts die in de handtekening wordt gebruikt. Genereer deze wanneer de gebruiker de link bijna gaat openen. |
| sign | Ja | Handtekening. sign is de hexadecimale SHA256 in kleine letters van de samengevoegde platte tekst: appId + email + thirdUserId + ts + Secret Key. De volgorde moet exact overeenkomen. De Secret Key wordt alleen op de server samengevoegd en mag niet in de adresbalk van de browser verschijnen. Zie hieronder Handtekening maken. |
Handtekening maken
Regels voor de handtekening
1. Voeg de velden voor de handtekening samen in een vaste volgorde zonder scheidingsteken: appId + email + thirdUserId + ts + Secret Key. Als email of thirdUserId wordt weggelaten, gebruik dan op die plaats een lege tekenreeks. Laat het veld niet weg en vervang het niet door een placeholder. De Secret Key wordt alleen op de server samengevoegd en mag niet in de adresbalk van de browser verschijnen.
2. Hash die tekenreeks met SHA256 en gebruik de hexadecimale waarde in kleine letters als sign.
3. language en returnUrl worden niet opgenomen in de handtekening. Gebruik alleen de velden en volgorde uit stap 1.
4. ts is het aantal seconden sinds 1970-01-01 00:00:00 UTC. Dit blijft 60 seconden geldig. Genereer ts en sign wanneer de gebruiker de link bijna gaat openen, en gebruik dezelfde ts in de URL. URL-codering mag de oorspronkelijke waarden die in de handtekening worden gebruikt niet wijzigen.
5. Om de samengevoegde tekenreeks te controleren, plak deze in een SHA256-tool zoals LZL online SHA256. Genereer in productie sign op uw server. Stel de Secret Key niet bloot aan de browser.
6. Gebruik geen SSO-handtekening van een subaccount opnieuw. Die tekenreeks gebruikt appId, email, userName, roleId en ts. Deze interface gebruikt userName of roleId niet.
Bijvoorbeeld:
http://surveymars.com/app/login/contact/verify?appId=TTeEB8&[email protected]&ts=1790760357&language=2&returnUrl=https://surveymars.com/app/usercenter&sign=26c0c7d9da5e38c61d4aeecb223336d7a259cad0b75c8ff912855421fd832a4e
E-mailadres en gebruikers-ID van een derde partij
1. Stuur ten minste één van email en thirdUserId.
2. Als u beide verzendt, gebruikt de verificatie email en negeert thirdUserId. Behoud de oorspronkelijke thirdUserId in de handtekening, en u mag deze in de URL behouden.
3. Als het hoofdaccount geen leeg contact-e-mailadres toestaat, is email vereist.
4. Als deze instelling uit staat, neem dan contact op met support om "Leeg contact-e-mailadres toestaan" in te schakelen. Zodra dit is ingeschakeld, kunt u een contact toevoegen zonder e-mailadres.
Waar het contact terechtkomt
1. Contact van een subaccount: SurveyMars opent returnUrl. Als returnUrl wordt weggelaten, wordt de enquête-lijst geopend.
2. Andere contacten: SurveyMars negeert returnUrl en opent de startpagina van het contact.
Belangrijke opmerkingen
- Bewaar de Secret Key op uw server. Plaats deze niet in de adresbalk van de browser.
- Deze interface meldt een contact aan. Het maakt geen subaccount aan en stelt geen subaccountrol in.
- URL-codeer tekens zoals @ in email. Onderteken de oorspronkelijke waarde, niet de gecodeerde waarde.
Veelgestelde vragen
Waarin verschilt dit van SSO voor subaccounts?
SSO voor subaccounts gebruikt /app/login/sso/verify om een subaccount aan te maken of aan te melden. Aanmelden van een contact gebruikt /app/login/contact/verify met een e-mailadres of gebruikers-ID van een derde partij. De handtekeningvelden zijn anders. Gebruik sign niet opnieuw.
Kan ik alleen thirdUserId verzenden?
Ja, als het hoofdaccount een leeg contact-e-mailadres toestaat. Anders is email vereist. Gebruik een lege tekenreeks voor het weggelaten veld in de handtekening.
Ik heb zowel email als thirdUserId verzonden. Waarom wordt bij het aanmelden het e-mailadres gebruikt?
Wanneer beide aanwezig zijn, negeert de verificatie thirdUserId en wordt het contact gekoppeld op basis van email. thirdUserId wordt nog steeds opgenomen in de handtekening.
Waarom heeft een contact dat geen subaccount is returnUrl overgeslagen?
returnUrl is alleen van toepassing wanneer het contact een subaccount is. Anders negeert SurveyMars dit en opent het de startpagina van het contact.
Waarom mislukt de handtekeningverificatie?
Controleer de Secret Key. Voeg appId, email, thirdUserId, ts en de Secret Key samen in die volgorde. Gebruik een lege tekenreeks voor een weggelaten email of thirdUserId. Bevestig dat ts nog binnen 60 seconden valt en dat URL-codering de oorspronkelijke waarden niet heeft gewijzigd. Voeg geen language of returnUrl toe.
Waarom verloopt ts zo snel?
In productie moet ts binnen 60 seconden van de servertijd liggen. Genereer ts en sign wanneer de gebruiker de link bijna gaat openen.