Centrum pomocy Kontakty i administrator Kontakty Interfejs SSO dla kontaktów

Interfejs SSO dla kontaktów

Ten artykuł wyjaśnia, jak zalogować kontakt za pomocą adresu e-mail lub identyfikatora użytkownika zewnętrznego. Korzysta on z tego samego appId i Secret Key co interfejs SSO dla subkont, ale URL, pola podpisu i strona docelowa są inne. Twórz subkonta i ustawiaj role za pomocą interfejsu SSO dla subkont.


Przegląd

Prześlij adres e-mail kontaktu lub identyfikator użytkownika zewnętrznego. SurveyMars sprawdza podpis i loguje ten kontakt.

- Jeśli kontakt jest subkontem, SurveyMars otwiera returnUrl. Jeśli returnUrl nie zostanie podany, otwiera listę ankiet.

- Jeśli kontakt nie jest subkontem, SurveyMars ignoruje returnUrl i otwiera stronę główną kontaktu.


Przypadki użycia

- Twój system ma już adres e-mail kontaktu lub identyfikator użytkownika zewnętrznego i chcesz uzyskać dostęp do SurveyMars bez hasła.

- Kontakt będący subkontem trafia na returnUrl. Inne kontakty pomijają returnUrl i trafiają na stronę główną kontaktu.


Zanim zaczniesz

1. Zaloguj się na główne konto i skopiuj appId z Moje konto.

2. Poproś wsparcie o włączenie Secret Key. Używaj tego klucza wyłącznie na swoim serwerze. Nie umieszczaj go w URL ani w kodzie front-endu.

3. Wygeneruj podpis SHA256 na swoim serwerze, a następnie otwórz link logowania metodą GET.


Moje konto


Żądanie

Metoda: GET

URL: https://surveymars.com/app/login/contact/verify?appId=&email=&thirdUserId=&ts=&language=&returnUrl=&sign=


Parametr Wymagane Opis
appId Tak Identyfikator głównego konta. Użyj tego samego appId co w interfejsie SSO dla subkont.
email Warunkowe Adres e-mail kontaktu. Podaj email lub thirdUserId, albo oba. email jest wymagany, gdy główne konto nie zezwala na pusty adres e-mail kontaktu.
thirdUserId Warunkowe Identyfikator użytkownika zewnętrznego. Podaj email lub thirdUserId, albo oba. Jeśli podane są oba, weryfikacja używa tylko email. thirdUserId nadal jest uwzględniany w podpisie.
language Nie Język komunikatów. Nie jest uwzględniany w podpisie.
returnUrl Nie Strona otwierana po zalogowaniu subkonta. SurveyMars używa jej dla kontaktu będącego subkontem i ignoruje ją w pozostałych przypadkach. Nie jest uwzględniana w podpisie.
ts Tak Liczba sekund od 1970-01-01 00:00:00 UTC. Jest ważna przez 60 sekund. ts w URL musi być zgodne z ts użytym w podpisie. Generuj je, gdy użytkownik ma zamiar otworzyć link.
sign Tak Podpis. sign to małe litery szesnastkowego SHA256 z połączonego tekstu jawnego: appId + email + thirdUserId + ts + Secret Key. Kolejność musi być dokładnie taka sama. Secret Key jest dołączany wyłącznie na serwerze i nie może pojawić się w pasku adresu przeglądarki. Zobacz sekcję Budowanie podpisu poniżej.


Budowanie podpisu

Zasady podpisu


1. Połącz pola podpisu w stałej kolejności, bez separatora: appId + email + thirdUserId + ts + Secret Key. Jeśli email lub thirdUserId zostanie pominięty, użyj w tym miejscu pustego ciągu. Nie usuwaj pola ani nie zastępuj go symbolem zastępczym. Secret Key jest dołączany wyłącznie na serwerze i nie może pojawić się w pasku adresu przeglądarki.


2. Haszuj ten ciąg za pomocą SHA256 i użyj małej szesnastkowej wartości jako sign.


3. language i returnUrl nie są uwzględniane w podpisie. Używaj tylko pól i kolejności z kroku 1.


4. ts to liczba sekund od 1970-01-01 00:00:00 UTC. Jest ważna przez 60 sekund. Generuj ts i sign, gdy użytkownik ma zamiar otworzyć link, i użyj tego samego ts w URL. Kodowanie URL nie może zmienić oryginalnych wartości użytych w podpisie.


5. Aby sprawdzić połączony ciąg, wklej go do narzędzia SHA256, takiego jak LZL online SHA256. W środowisku produkcyjnym generuj sign na swoim serwerze. Nie ujawniaj Secret Key przeglądarce.


6. Nie używaj ponownie podpisu SSO subkonta. Ten ciąg używa appId, email, userName, roleId i ts. Ten interfejs nie używa userName ani roleId.


Na przykład:

http://surveymars.com/app/login/contact/verify?appId=TTeEB8&[email protected]&ts=1790760357&language=2&returnUrl=https://surveymars.com/app/usercenter&sign=26c0c7d9da5e38c61d4aeecb223336d7a259cad0b75c8ff912855421fd832a4e



Adres e-mail i identyfikator użytkownika zewnętrznego

1. Wyślij co najmniej jeden z następujących elementów: email i thirdUserId.

2. Jeśli wyślesz oba, weryfikacja użyje email i zignoruje thirdUserId. Zachowaj oryginalny thirdUserId w podpisie i możesz pozostawić go w URL.

3. Jeśli główne konto nie zezwala na pusty adres e-mail kontaktu, email jest wymagany.

4. Jeśli to ustawienie jest wyłączone, skontaktuj się z pomocą techniczną, aby włączyć opcję "Allow empty contact email.". Po jej włączeniu możesz dodać kontakt bez adresu e-mail.


Gdzie trafia kontakt

1. Kontakt będący subkontem: SurveyMars otwiera returnUrl. Jeśli returnUrl nie zostanie podany, otwiera listę ankiet.

2. Inne kontakty: SurveyMars ignoruje returnUrl i otwiera stronę główną kontaktu.


Ważne uwagi

- Przechowuj Secret Key na swoim serwerze. Nie umieszczaj go w pasku adresu przeglądarki.

- Ten interfejs loguje kontakt. Nie tworzy subkonta ani nie ustawia roli subkonta.

- Koduj URL dla znaków takich jak @ w adresie e-mail. Podpisuj oryginalną wartość, a nie zakodowaną.


FAQ

Czym to się różni od SSO subkonta?
SSO subkonta używa /app/login/sso/verify do tworzenia subkonta lub logowania do niego. Logowanie kontaktu używa /app/login/contact/verify z adresem e-mail lub identyfikatorem użytkownika zewnętrznego. Pola podpisu są inne. Nie używaj ponownie sign.


Czy mogę wysłać tylko thirdUserId?
Tak, jeśli główne konto zezwala na pusty adres e-mail kontaktu. W przeciwnym razie email jest wymagany. Użyj pustego ciągu dla pominiętego pola w podpisie.


Wysłałem zarówno email, jak i thirdUserId. Dlaczego logowanie używa email?
Gdy oba są obecne, weryfikacja ignoruje thirdUserId i dopasowuje kontakt po email. thirdUserId nadal jest uwzględniany w podpisie.


Dlaczego kontakt, który nie jest subkontem, pominął returnUrl?
returnUrl ma zastosowanie tylko wtedy, gdy kontakt jest subkontem. W przeciwnym razie SurveyMars ignoruje go i otwiera stronę główną kontaktu.


Dlaczego weryfikacja podpisu kończy się niepowodzeniem?
Sprawdź Secret Key. Połącz appId, email, thirdUserId, ts i Secret Key w tej kolejności. Użyj pustego ciągu dla pominiętego email lub thirdUserId. Upewnij się, że ts nadal mieści się w 60 sekundach i że kodowanie URL nie zmieniło oryginalnych wartości. Nie uwzględniaj language ani returnUrl.


Dlaczego ts wygasa tak szybko?
W środowisku produkcyjnym ts musi mieścić się w granicach 60 sekund od czasu serwera. Generuj ts i sign, gdy użytkownik ma zamiar otworzyć link.

Jak pomocny był ten artykuł?