2011-11-07 6 views
2

私のウェブサイトにOmniAuthable Facebookのログインがあります。ユーザーはドメインがwwwプレフィックスなしでアクセスされた場合、Facebookのログインでエラーメッセージが返される

link_to user_omniauth_authorize_path(:facebook) 

となります。これはdevelopers.facebook.comのapp configで定義されています。

www.example.comからウェブサイトにアクセスすると、すべて正常に動作し、ログインできます。

私は「WWW」サブドメイン(すなわち、example.com)せずにアクセスした場合、私は次の応答を取得:

{ 
    "error": { 
     "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.", 
     "type": "OAuthException" 
    } 
} 

誰が、私はこの問題を解決する方法を知っていますか?

答えて

6

解決策:それをしないでください。あなたはあらゆる種類の問題に終わります(this page参照)。 www.example.comまたはexample.comのいずれかを使用するように選択し、許可されていないバージョンから目的のバージョンにリダイレクトしてアプリケーションに適用するように選択します。 FWIW、Googleはwwwを使用することを選択します。なぜなら、それらのアーキテクチャとの互換性がより高いからです(実際はより柔軟です)。一方、StackOverflowはそれなしで行くことを選択します(標準的にはより正確です)。いずれにせよ、一つを選んでそれに固執する。

+0

アプリ設定で「yourdomain'com」ではなく「www.yourdomain.com」としてアプリドメインを設定しているため、設定したもののサブドメインにリダイレクトできますセキュリティ上の理由からレベルを上げる – Igy

+1

いいえ、逆の場合、動作は同じです(つまり、yourdomain.comの設定でwww.yourdomain.comを変更すると、yourdomain.comにログインできますが、wwwにエラーが表示されます.yourdomain.com) –

+0

ps。私は別のdomain.comとwww.domain.comを持っていれば、どのような問題が起こるか説明できますか?私はこのミスをしていると私は働いていると私は彼らがなぜこれが間違っているかを説明する方法を知りたいと思います –