Печально известная нулевая ошибка объекта с OmniAuth - PullRequest
0 голосов
/ 29 июня 2011

Вы можете увидеть эту ошибку на SO: Ошибка нулевого объекта при использовании OmniAuth (который обычно работает) OmniAuth / Rails - у вас есть нулевой объект, когда вы его не ожидали

У меня та же проблема с моей стратегией OmniAuth.Я написал свой собственный, и проверил его локально на Rails и Sinatra.Оба экземпляра возвращают одну и ту же ошибку, и Синатра отображает более полезную информацию.

"У вас есть нулевой объект, когда вы его не ожидали!Возможно, вы ожидали экземпляр ActiveRecord :: Base.Произошла ошибка при оценке nil. [] = "

Похоже, что за кулисами происходит что-то, что я не понимаю. Последний комментарий Синатры в следе:

«../lib/rack/utils.rb в set_cookie_header!» в строке 194:

case header["Set-Cookie"]

Хотя я не связываюсь с файлами cookie. Кажется, что эта проблема уходит случайным образом для некоторых людей,или сделать что-то простое, например, очистка кэша для кого-то сработала. Ни один из этих методов не сработал для меня. Кто-нибудь знает проверенный и верный способ решения этой проблемы? Вы можете просмотреть репо для проекта здесь: https://github.com/stevenhaddox/oa-casport Спасибо!

РЕДАКТИРОВАТЬ: После долгих раздумий я предполагаю, что OmniAuth не нравится тот факт, что мое промежуточное ПО Rack не настроено для SSL. Есть ли способ сказать,OmniAuth не ожидает SSL?

1 Ответ

2 голосов
/ 30 июня 2011

Похоже, вы забыли набрать redirect(callback_path) в конце фазы запроса. Как только вы добавите это, я думаю, что вы вернетесь в соответствие с рабочим процессом OmniAuth для получения вашего auth_hash.

...