OpenID. Как вы выходите
На веб-сайте я реализовал вход в систему с использованием OpenID (на основе Stackru).
Но я не могу выйти из системы.
На моем хосте я могу выйти, но когда пользователь пытается войти снова (особенно с Google), аутентификация проходит без необходимости ввода имени и пароля.
Как я могу указать провайдеру OpenID, что пользователь больше не вошел на сайт?
4 ответа
OpenID аутентифицирует пользователей на вашем сайте, когда затем начинает сеанс на вашем сайте. Вы уничтожаете или аннулируете сеанс своего сайта отдельно от сеанса пользователя с его поставщиком OpenID.
Пользователь заходит на joewidgets.com > Пользователь входит в систему с OpenID (с новым или существующим сеансом провайдера) > ... Пользователь щелкает выход> joewidgets.com уничтожает / делает недействительным сеанс.
Если у пользователя есть провайдер OpenID, оставьте его в системе, и ваша система автоматически проверит, то он создаст новый локальный сеанс. (Не) к счастью, вы не можете / не можете беспокоиться о том, что пользователь делает или не делает у своего провайдера, который является за / против OpenID.
В Social Lipstick есть аргумент, который вызывает "Единый выход", но OpenID в настоящее время не предоставляет эту функцию.
Это называется Single Logout или Single Sign-Out, которые OpenID не поддерживает. На мой взгляд, SSO без выхода из системы - большая дыра в безопасности. Выход из одного сайта не имеет большого значения, если другие могут войти с помощью нескольких кликов.
На данный момент мы должны помнить поставщика. Если это кто-то, кого мы знаем, мы запускаем для них процесс выхода. Для Google, URL-адрес,
https://www.google.com/accounts/Logout
Выход из системы уродлив, но он выполняет свою работу.
Как правило, это то, что обрабатывается поставщиком OpenID - например, если пользователь остается вошедшим в свою учетную запись Google и устанавливает флажок, чтобы "запомнить" авторизацию OpenID для вашего конкретного сайта, тогда поставщик будет прозрачно регистрировать их и перенаправлять обратно без отображение приглашения на вход.
"Это особенность, а не ошибка"
Поставщик идентификатора может оставить пользователя авторизованным для поставщика с помощью файлов cookie, а также может отказаться от запроса пользователю об обмене той же информацией, которая была предоставлена ранее (с подсказкой). Поэтому, когда пользователь на Сайте A, запрашивается авторизация через Сайт B и перенаправляется, Сайт B сначала запрашивает у пользователя аутентификацию себя или себя. Затем сайт B спросил, должен ли он делиться какой-либо информацией (и иногда какой информацией) с сайтом A. В этот момент он также обычно спрашивает, хотите ли вы автоматически делиться этой же информацией в будущем. Некоторые поставщики предполагают, что да, некоторые нет, некоторые не спрашивают. Затем сайт B перенаправляет на сайт A и делится информацией, в которую вы вошли.
Если сайт A делает второе перенаправление на сайт B для запроса входа в систему, сайт B может: 1) уже иметь cookie-файл, который аутентифицирует текущего пользователя сайта B. 2) уже иметь запись о том, какую информацию приемлемо передать на сайт B. 3) Автоматически обмениваться этой информацией через перенаправление, не останавливаясь, чтобы запросить пользователя вообще.
Эта особенность основана на удобстве.