Я пытаюсь реализовать одноразовое решение для нескольких рельсов (v3.2), размещенных в разных поддоменах example.com
Одно приложение служит поставщиком удостоверений, использует devess для auth и сидит на users.example.com Другие приложения полагаются на поставщик удостоверений для аутентификации, используют devise + omniauth, с доменами [app1.example.com, app2.example.com и example.com]. Эта запись в блоге вдохновила большую часть моей реализации: http://blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on/
У меня все нормально работает, но проблема остается в том, что сеансы не разделяются, поэтому после входа в систему для поставщика удостоверения я все равно должен сделать вызов из каждого другого приложения для аутентификации, и мне нужно, чтобы это было кажущийся пользователю.
Я попытался использовать один и тот же секретный токен в secret_token.rb, тот же ключ сеанса на session_store.rb и: domain = > : all (также были использованы ".example.com" и "example.com" в качестве значений). Еще не повезло.
Выполняя вышеизложенное, я вижу в сеансе. Обратите внимание, что после входа в систему поставщика идентификаторов заполняется переменная сеанса "warden.user.user.key". Когда я сразу же перехожу в приложение на app1.example.com, session.inspect показывает те же session_id и _csrf_token, но теперь отсутствует переменная "warden.user.user.key".
Я чувствую, что мне не хватает чего-то глупого.. Любые идеи, что это может быть?