2015-10-14 18 views
5

Facebookにはwebsite URLが必要です.WebサイトはOauthリクエストの検証のためにホストされています。 Facebookは有効なcallback URLsを必要とします。基本的にFacebookがOauthトークンを安全に渡すことができるURLのリストです。ここでFacebook Oauth on Cloud9

するFacebookのOAuth設定について、私のcloud9環境対私の地元の環境の違いです:

ローカルホスト

  • ウェブサイトのURLhttp://localhost:3000
  • コールバックURLhttp://localhost:3000/auth/facebook/callback

Cloud9

  • ウェブサイトのURLhttp://myapp-cireficc.c9.io/
  • コールバックURLhttp://myapp-cireficc.c9.io/auth/facebook/callback

私のlocalhostの設定が正常に動作します。私はcloud9に私のアプリを実行したときしかし、私はFacebookのから次のエラーを取得する:URLを考える

は、アプリケーションの設定によって許可されていません:指定されたURLの1つ以上は、アプリの設定で許可されていません。それはウェブサイトURLまたはCanvas URLと一致する必要があります。または、ドメインはAppのドメインの1つのサブドメインでなければなりません。

redirect_uri=http%3A%2F%2Fmyapp-cireficc.c9.io%3A80%2Fauth%2Ffacebook%2Fcallback

:これは、これら2つのパラメータのいずれかが間違っている...とデバッグのビットの後、それはFacebookのように見えることを意味している

このコールバックURLにアクセスしようとしています

そして、もっと読みやすい文字にそれをデコードした後、我々は持っている:

http://myapp-cireficc.c9.io:80/auth/facebook/callback

これはランダムなようです:80がコールバックURLに追加されているため、Oauthリクエストが送信されたときに追加され、Facebookがそれを応答コールバック現在、が正しくありません。です。ので:80が追加され、期待実際コールバックが異なります期待

を:http://myapp-cireficc.c9.io/auth/facebook/callback

実際http://myapp-cireficc.c9.io:80/auth/facebook/callback

これは何かであることを私には思えますクラウド9はリクエストを送信したときに追加しています(多分ドメイン名の設定方法のせいでしょうか?)。 Facebook Oauthがcloud9で作業するにはどうすればよいですか?

:Cloud9のenv.PORT8080あり、そしてenv.IP0.0.0.0です。これは、コールバックの:80の出所ですが、この問題を回避する方法はわかりません。

興味深いことに、私はステージング環境をHerokuに設定しており、Herokuにはこの問題はありません。 http://myapp-staging.herokuapp.comと正しいコールバックURLを使用して、FacebookのOauthに簡単にアクセスできます。

+1

うーん、これは興味深いです。あなたは:80をウェブサイトURLに追加して、これを今のところ回避することができます。 – Mutahhir

+0

@Mutahhirええ、なぜそれが起こっているのか分かりません。私は最初に問題を認識したときにそれを試しましたが、サーバーはハングしていました。それは、データベースの設定のために何かが欠けていたことが判明したので、「ユーザを見つける」機能がタイムアウトしました。いずれにしても、URLに ':80'を追加すると、それほど大したことではないと思います! –

答えて

1

クラウド9のURLにポート(:80)を追加し、それを有効なOAuthリダイレクトURIに追加する私のためにそれを修正しました。

1

@ AnthonyGroveの回答は私のためには機能しませんでした。

ただし、クラウド9のURLにポート(:8080)を追加し、それを有効なOAuthリダイレクトURIに追加します。は私のために修正しました。 docsから

Please note that 8080, 8081, and 8082 are the only available ports on a hosted Cloud9 workspace.