今日は友人にherokuに上げたサイトを見てもらいました。
わし「これ作ったんだよ〜!見てよ!」
友人「ちゃんと機能作れてるやん〜。あれ、でもSNS認証がsomethinbg went wrongになってるよ」
わし「( ᵕ̩̩ㅅᵕ̩̩ )」
再度確認してみると、Google認証はエラーメッセージを吐いてくれてました。
google「400: redirect_uri_mismatch あーだこーだあーだこーだ」
わし「あれ〜なんか認証URLが間違ってるっぽいぞ。でもちゃんと認証URLもあってるような気が…( ᵕ̩̩ㅅᵕ̩̩ )」
デベロッパーサイトでOAuthのコールバックURLを確認し、APIキーも再入力したし、なんで…
と思っていたら、URLのところに「保護されていない通信」の文字が…あれ、herokuって基本SSL化されてるはずでは…
よく見るとURLが「http://」から始まっていました。結局僕のタイポでした。
これを「https://」に打ち直したらSNS認証は上手くいきました。めでたしめでたし…
##いい機会なのでSSL化強制しよう
ただのタイポで解決できてよかったですが、どんな時もSSL化できていないと危険です。
仮にhttpでアクセスされてもいいように、httpsへ強制的にリダイレクトさせたいです。
Railsでは以下の一行をコメントアウトすることでSSL化強制することができます。
Rails.application.configure do
・・・
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = true
・・・
end
鬼のように便利ですね〜
##独自ドメインだともうちょっと手間がかかりそう
今回はrails + herokuapp.comの場合の手段ですが、独自ドメインを取得した場合はもっと大変そう。
.htaccessとか色々勉強しなければなりませんね…という新たな課題も見つかりました。
フレームワークもいいけど、そもそもネットワークの知識が必要だなぁ〜って思いました。
おわり