5

Jestem zainteresowany poznaniem uwierzytelniania omniauth z szynami, więc sprawdziłem różne przewodniki, w których również zawiera Railscast # 360.Szyny - Omniauth-facebook App_id wymagany błąd

Kiedy tworzę własną aplikację z developers.facebook.com, tworzy ona dla mnie identyfikator App_id i secret. Ustawiłem aplikację w trybie online i stworzyłem podstawową aplikację szyny, która po prostu używa kroków opisanych w przewodniku Ryana Batesa.

To mój omniauth.rb plik, który generuje błąd, że mam już otrzymywać,

OmniAuth.config.logger = Rails.logger 

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, ENV['875829959136178'], ENV['<app_secret>'] 
end 

Próbowałem użyć

provider :facebook, ENV['FACEBOOK_875829959136178'], ENV['FACEBOOK_<app_secret>'] 

również.

Gdy zadzwonię pod numer http://localhost:3000/auth/facebook, otrzymuję błąd wskazujący, że "wymagany jest parametr id_aplikacji".

Jak mogę przekazać ten błąd,

Odpowiedz

11

Wydaje się rozumieją co ENV jest. ENV[xxx] to metoda ruby ​​pobierająca wartość zmiennej środowiskowej xxx. Tak więc ENV['875829959136178'] w fragmencie kodu próbuje pobrać wartość zmiennej środowiskowej 875829959136178. Jest bardzo prawdopodobne, że nie ustawiłeś swojego ID_aplikacji na zmienną środowiskową 875829959136178, a tym samym ENV['875829959136178'] zwraca zero. provider to metoda pobierająca app_id i app_secret, ale ponieważ podajesz zero jako app_id, twierdzi ona, że ​​app_id nie został podany, mimo że jest wymagany.

Załóżmy, że Twój app_id to 875829959136178, a twój app_secret to APP_SECRET. Najprostszym sposobem na sprawdzenie działania aplikacji jest nadanie jej nazwy String.

provider :facebook, "875829959136178", "APP_SECRET" 

Należy pamiętać jednak, że wprowadzenie identyfikatora aplikacji i tajemnicy w kodzie źródłowym w postaci zwykłego tekstu nie jest pożądane z punktu widzenia bezpieczeństwa. Powinieneś się nauczyć, jak ustawić zmienne środowiskowe, czytając artykuły takie jak this lub korzystając z klejnotów takich jak dotenv.

+0

Zadziwiające wyjaśnienie :) Dziękuję bardzo. Opiera się na zmiennych env right noe :) –

Powiązane problemy