Я предлагаю вам прочитать спецификацию .
Короче говоря (это не совсем точно, но большая часть потока есть), проверяющая сторона (иначе RP: сайт, на который пытается войти пользователь) создает URL, который содержит сообщение, которое RP хочет отправить к провайдеру OpenID (OP), который описывает сам RP и какой тип входа он хочет, чтобы пользователь прошел. RP отправляет сообщение 301 Redirect в браузер, поэтому браузер будет перенаправлен на этот URL, созданный RP. Браузер отправит этот URL на OP, поэтому OP получает сообщение. Ответ OP для браузера будет либо HTML-страницей, чтобы пользователь мог войти в OP, либо собственным перенаправлением 301 с тщательно созданным URL-адресом, который отправляет браузер обратно на RP с сообщением RP "да, этот пользователь вошел как x".
RP проверяет, что сообщение от OP является подлинным, либо проверяя подпись OP, включенную в сообщение, используя общий секрет между RP и OP, либо отправляя прямое HTTP-сообщение от RP на OP с запросом " ты отправил это? "
Обратите внимание, что AJAX или любая другая форма сценариев здесь не задействована.
Теперь в некоторых расширенных сценариях можно использовать AJAX , но во всех случаях общий поток информации между RP и OP и браузером одинаков. Вопрос лишь в том, происходят ли некоторые из этих «перенаправлений» в скрытых фреймах через Javascript или нет. И скрытые iframes, конечно, потерпят неудачу, если пользователь не авторизовал OP для автоматического входа пользователя в этот RP в прошлом.