Перейти к основному содержанию

Как включить единый вход

Введение

Вы подключили Casdoor и настроили более одного приложения в организации. Вы хотите, чтобы пользователи входили один раз в любое приложение организации, а затем могли входить, когда они переходят в другое приложение без лишних кликов.

Мы предлагаем эту функцию единого входа. Чтобы включить ее, вам просто нужно:

  • Включить кнопку автоматического входа.
  • Заполнить URL домашней страницы.
  • Добавить функцию Тихого Входа на домашнюю страницу приложения.
заметка

Базовый процесс входа, предоставляемый Casdoor, позволяет пользователям входить в другие приложения организации, выбирая пользователя, который в данный момент вошел в систему, или используя другой аккаунт.

После включения автоматического входа, список выбора не будет отображаться, и вошедший пользователь будет входить непосредственно.

Конфигурация

  1. Заполните поле "дом". Это может быть домашняя страница приложения или страница входа.

sso_home.png 2. Включить кнопку автоматического входа.

sso_signin.png

Добавить Тихий Вход

На самом деле, мы реализуем автоматический вход, передавая параметры в URL. Таким образом, ваши приложения должны иметь метод для инициирования входа после перехода по URL. Мы предоставляем casdoor-react-sdk, чтобы помочь вам быстро реализовать эту функцию. Вы можете увидеть детали по ссылке use-in-react.

информация

Как это работает

  1. В URL на домашнюю страницу приложения мы будем передавать параметр silentSignin.
  2. На вашей домашней странице определите, нужно ли вам входить тихо (автоматически), проверив параметр silentSignin. Если silentSignin === 1, функция должна возвращать компонент SilentSignin, который поможет вам инициировать запрос на вход. Поскольку у вас включен автоматический вход, пользователи будут входить автоматически без кликов.

Добавить Вход во Всплывающем Окне

Функция "вход во всплывающем окне" откроет маленькое окно. После входа в Casdoor в дочернем окне он отправит информацию для аутентификации в главное окно и затем автоматически закроется. Мы реализуем эту функцию, передавая параметры в URL.

информация

Как использовать

Используйте метод popupSignin() в casdoor-js-sdk, чтобы быстро реализовать эту функцию. Вы можете увидеть демонстрацию по ссылке casdoor-nodejs-react-example.

Как это работает

  1. В URL на домашнюю страницу приложения мы будем передавать параметр popup.
  2. Когда в параметрах входа есть popup=1, Casdoor отправит code и state как сообщение в главное окно и завершит получение token в главном окне с помощью SDK.

Использование SSO

Конфигурация завершена. Ниже мы покажем вам, как использовать автоматический вход.

информация

Убедитесь, что ваше приложение может перенаправлять на страницу профиля пользователя. API getMyProfileUrl(account, returnUrl) предоставляется в нашем SDK для каждого языка.

Откройте страницу профиля и перейдите на страницу "Домой" (путь URL /). Вы увидите список приложений, предоставляемых организацией. Стоит отметить, что только пользователи в организациях, отличных от "встроенных", могут видеть список приложений на странице "Домой". Все глобальные администраторы (те, что в организации "встроенные") не могут его видеть.

sso_homepage.png

Нажмите на плитку в списке приложений, и вы перейдете на домашнюю страницу этого приложения с GET-параметром ?silentSignin=1. Оно автоматически войдет в приложение, если приложение интегрировано с Casdoor SSO (так что оно распознает параметр ?silentSignin=1 и выполнит тихий вход в фоновом режиме).

SSO Logout

When using SSO, you might need to log a user out from all applications simultaneously. Casdoor provides an SSO logout endpoint that terminates all active sessions and expires all tokens for a user across all applications in the organization.

To implement SSO logout in your application, make a request to the /api/sso-logout endpoint. This endpoint will ensure the user is completely logged out from all integrated applications. For detailed information about the SSO logout API, including authentication methods and request examples, see the SSO Logout section in the Public API documentation.