предисловие
В новом проекте нужно подключить единый вход, так я об этом узналCAS
процесс входа в систему.
Блок-схема, обязательная к просмотру
Сначала изображение (сеть источника изображения)
Авторизоваться
Согласно блок-схеме, внешний интерфейс должен запросить у сервера аутентификацию при первом входе на страницу.
Когда сервер обнаруживает, что у пользователя нет соответствующих учетных данных, он может вернуть соответствующий код состояния, чтобы сообщить внешнему интерфейсу о необходимости входа в систему.
передний конец прыгать вhttps://*.*/cas/login?service=http://*.*
чтобы залогиниться.
После входа в системуCAS
вернется на передний планticket
,Например:http://*.*?ticket=ST-1212
В это время передняя страница повторно введена, передняя страница продолжает запрашивать аутентификацию с сервера.
Сервер обнаруживает, что пользователь не имеет учетных данных, выданных сервером, но имеетCAS
изданныйticket
, в это время сервер запрашиваетCAS
Подтвердите вход (Примечание: из-заCAS
изданныйticket
Время истечения очень короткое, по умолчанию10s
, поэтому при тестировании вручную нужно обращать внимание на скорость).
запросить ссылкуdemo
:https://*.*/cas/serviceValidate?service=http://*.*?ticket=ST1212
Если проверка пройдена, он вернетсяXML
информации, результаты следующие:
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationSuccess>
<cas:user>login_name</cas:user>
</cas:authenticationSuccess>
</cas:serviceResponse>
Проверка не удалась, возвратXML
информации, результаты следующие:
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationFailure code='INVALID_TICKET'>
Ticket 'ST-12148040' not recognized
</cas:authenticationFailure>
</cas:serviceResponse>
Если проверка пройдена, соответствующие учетные данные генерируются для внешнего интерфейса.
Когда внешний интерфейс инициирует какой-либо запрос на стороне сервера, ему необходимо передать учетные данные на стороне сервера.Если окажется, что они недействительны, весь процесс входа будет повторен.
выход
Выйти из системы относительно просто, пройдите напрямую черезhttps://*.*/cas/logout?service=http://*.*
Вот и все.