Help > Forum > Интеграция веб-сайтов > Единый вход — аутентификация на основе токенов
Единый вход — аутентификация на основе токенов
Если вы используете WordPress, используйте наш Плагин для WordPress.
Мы можем сделать это за вас - Зайдите в Настройки единого входа и выберите конструктор сайтов, чтобы наша команда разработчиков интегрировала SSO за вас, всего за 199 долларов.
Мы также поддерживаем функцию единого входа с помощью OAuth2, СТРУЯ, ОБРАЗЕЦ, LDAP, SQL и OpenID.
Вы можете использовать API единого входа (SSO) для автоматического входа посетителей на форум. Это может быть полезно, если на вашем сайте есть отдельная зона для входа и вы не хотите, чтобы посетители заходили в систему дважды.
SSO API позволяет вам сделать запрос API, чтобы получить токен для входа пользователя, а затем включить его в адрес форума для входа пользователя.
Следуйте приведенным ниже инструкциям, чтобы интегрировать SSO API на свой веб-сайт:
-
Сделайте запрос на токен для входа в систему
В скрипте входа на ваш сайт создайте HTTP-запрос к URL-адресу входа в SSO API:https://FORUM_DOMAIN/register/setauthtoken?type=json&apikey=APIKEY&user=USERЗаменить APIKEY с помощью ключа API, полученного на шаге 1.Заменить USER с именем пользователя форума, к которому вы хотите войти. Если на вашем сайте не используются имена пользователей, вы можете используйте адрес электронной почты в качестве имени пользователя.
При желании вы можете включить &email=EMAIL параметр, если вы хотите, чтобы учетная запись на форуме автоматически создавалась в тех случаях, когда указанной учетной записи на форуме еще нет. Мы рекомендуем включить параметр электронной почты. (Замените EMAIL адресом электронной почты пользователя.)
Вы также можете опционально укажите другую информацию об учетной записи, например полное имя пользователя (параметр «имя»), аватар (параметр «аватар») и многое другое. Дополнительные параметры должны быть закодированы в URL-адресе.
Если вы используете PHP, мы настоятельно рекомендуем использовать наш Библиотека PHP SSO. Он содержит один файл со всем необходимым библиотечным кодом и другие файлы с примерами использования.
-
Получите токен из ответа
Проанализируйте JSON, возвращаемый HTTP-запросом, чтобы получить токен аутентификации и идентификатор пользователя, а затем сохранить его в файле cookie или в своей базе данных. Срок действия токена аутентификации истекает через 6 месяцев или сразу после его использования для обеспечения высокого уровня безопасности. Ответ JSON будет выглядеть следующим образом:{ "authtoken": "88SngRVArwrsZ053lfrqL", "userid": 424764 }При возникновении ошибки появится JSON, аналогичный приведенному ниже JSON, а не обычный ответ JSON:
{ "message": "The error message will be here." } -
Войдите в систему пользователя с помощью токена
Передайте токен аутентификации по ссылке на форуме на своем веб-сайте. Например:<a href="https://FORUM_DOMAIN/?authtoken=AUTHTOKEN&remember=REMEMBER">Forum</a>Заменить AUTHTOKEN с токеном аутентификации, полученным на предыдущих шагах. Замените REMEMBER 1, если вы хотите сохранить вход пользователя в систему даже после закрытия браузера или исключить его, если вы хотите, чтобы пользователь вышел из системы в конце сеанса браузера.
Если вы используете код для встраивания, вы можете передать токен аутентификации на страницу, на которой встроен форум, или в src атрибут кода для встраивания. Например:
<!--Begin Website Toolbox Forum Embed Code-->
<div id="wtEmbedCode"><script type="text/javascript" id="embedded_forum" src="https://FORUM_DOMAIN/js/mb/embed.js?authtoken=AUTHTOKEN&remember=REMEMBER"></script> <noscript><a href="https://FORUM_DOMAIN">Forum</a></noscript></div>
<!--End Website Toolbox Forum Embed Code-->Кроме того, если вы не хотите передавать токен аутентификации в адрес форума, вы можете добавить следующий тег HTML IMG на свою целевую страницу «Вход в систему выполнен успешно»:
<img src="//FORUM_DOMAIN/register/dologin?authtoken=AUTHTOKEN&remember=REMEMBER" border="0" width="1" height="1" alt="">Поскольку сторонние файлы cookie заблокированы в браузере Safari, метод тегов IMG не будет работать в Safari, если вы этого не сделаете подключил свой домен к форуму.
-
Выйдите из системы с помощью токена
После выхода пользователя с вашего веб-сайта перенаправьте его на следующий адрес, чтобы также выйти из форума:
https://FORUM_DOMAIN/register/logout?authtoken=AUTHTOKEN&redirect=REDIRECT_URLЗаменить REDIRECT_URL с URL-адресом веб-сайта, на который вы хотите отправить пользователю после выхода из форума. Замените AUTHTOKEN с токеном аутентификации, полученным на предыдущих шагах. Токен, используемый для выхода из системы, действителен в течение 6 месяцев, даже если он уже использовался для входа пользователя в систему. Как только токен используется для выхода пользователя из системы, срок его действия немедленно истекает.
Кроме того, если вы не хотите перенаправлять пользователя, вы можете добавить следующий HTML-тег IMG на целевую страницу «Выйти из системы успешно» на своем веб-сайте:
<img src="//FORUM_DOMAIN/register/logout?authtoken=AUTHTOKEN" border="0" width="1" height="1" alt="">Поскольку сторонние файлы cookie заблокированы в браузере Safari, метод тегов IMG не будет работать в Safari, если вы этого не сделаете подключил свой домен к форуму.
-
Сделайте так, чтобы ваш форум использовал страницу входа на ваш сайт
В Настройки -> Единый вход в разделе вашей учетной записи Website Toolbox укажите адрес вашего сайта Страница входа чтобы все входы на форум происходили с использованием формы входа на ваш веб-сайт.
Когда мы направим пользователя на вашу страницу входа в систему, мы добавим requestURI параметр к URL-адресу. В этом параметре будет указан путь к странице (например, /categories), откуда был создан пользователь. Таким образом, войдя в систему, вы сможете отправить их обратно на ту же страницу.
-
Заставьте форум использовать страницу выхода на вашем сайте
Опционально, в Настройки -> Единый вход в разделе вашей учетной записи Website Toolbox укажите адрес вашего сайта Страница выхода чтобы после выхода из форума пользователям отображалась страница выхода из вашего веб-сайта.
Используйте собственный домен и наш код для встраивания, API а также вебхуки чтобы организовать еще более глубокую интеграцию.
If you still need help, please contact us.