ominaut с facebook не работает с героку

Вход через Fb работал нормально, когда я был хостингом локально, но теперь у меня проблемы с героку. Я уже обновил домен на FB, связанный с моим приложением, с localhost:3000 на myapp.herokuapp.com.

Я также проверил эту тему omniauth с facebook, не работающей в производстве и попытался добавить хэш «client_options» в мой файл инициализатора, и у меня все еще есть проблемы. Я не знаю, имеет ли это значение, но когда я пытаюсь перейти к /usr/lib/ssl/certs/ca-certificates.crt, я получаю сообщение об ошибке «Нет такого файла или каталога».

Когда я нажимаю войти в FB в своем приложении (http://playedbyme.herokuapp.com/), я получаю ошибка обратного вызова.

Вот как выглядит мой файл инициализатора OmniAuth:

  Rails.application.config.middleware.use OmniAuth::Builder do
    provider :facebook, 'MY_APP_ID', 'MY_SECRET_KEY',
      {:client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}
  end

ОБНОВЛЕНИЕ: я думаю, что это какая-то проблема с моей базой данных. Когда я запускаю «heroku run rake db: migrate», я получаю сообщение об ошибке

   rake aborted!
   An error has occurred, this and all later migrations canceled:
   PG::Error: ERROR:  column "id" of relation "parties" already exists
   : ALTER TABLE "parties" RENAME COLUMN "party_id" TO "id"

Но у меня нет столбца с именем party_id в моей таблице сторон


person bsiddiqui    schedule 10.12.2012    source источник


Ответы (1)


Вы должны убедиться, что ваш путь к сертификатам ЦС указан правильно. Вы можете проверить это на своих серверах heroku, запустив:

heroku run bash

а затем запустите openssl, чтобы отобразить правильный путь:

$ openssl version -a
 OpenSSL 1.0.0e 6 Sep 2011 
 OPENSSLDIR: "/usr/lib/ssl"

Вы должны найти файл ca_certificates.crt в $OPENSSLDIR/certs/ca-certificates.crt.

Убедитесь, что вы также указываете свои разрешения Facebook в scope в соответствии с настройка omniauth в config/initializers/omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'YOUR_APP_ID', 'YOUR_SECRET_KEY',
           {:scope => 'PERMISSION_1, PERMISSION_2, ETC', :client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}
end

Также убедитесь, что вы перезапустили рельсы после внесения изменений в этот файл.

Изменить

Чтобы решить проблему с БД, вы можете посмотреть на сброс вашей БД и ее воссоздание:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME
heroku run rake db:setup
heroku restart
heroku open
person mccannf    schedule 10.12.2012
comment
Я сделал это и получил это: OpenSSL 0.9.8k 25 марта 2009 г. построено на: четверг, 10 февраля, 01:45:33 UTC 2011 платформа: параметры debian-amd64: bn(64,64) md2(int) rc4(ptr,char) компилятор des(idx,cisc,16,int) blowfish(ptr2): cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g -Wall - DMD32_REG_T=int -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM OPENSSLDIR: /usr/lib/ssl ~ $ Разве это не означает, что у меня правильный путь? - person bsiddiqui; 10.12.2012
comment
Хм, можно еще попробовать путь /etc/ssl/certs/ca-certificates.crt? Это еще одно возможное место для файла. - person mccannf; 10.12.2012
comment
Отредактировано для некоторых других вещей, чтобы попробовать - я считаю, что /usr/lib/ssl/certs - правильное место :( - person mccannf; 10.12.2012
comment
Проверил /etc/ssl/certs/ca-certificates.crt — нет файла или каталога. Должен ли я открывать /usr/lib/ssl/certs в терминале? - person bsiddiqui; 10.12.2012
comment
Я думаю, что у меня какая-то проблема с моей базой данных - person bsiddiqui; 10.12.2012