Facebookログインを持つnodeJSアプリケーション(エクスプレス)があります。ここで説明されているパスポート-フェイスブック認証を使用していますパスポート-フェイスブック。私のログインは数週間前はまだ機能していましたが、今は何かが変わっています. Facebook が何かを変更したのか、それとも私が変更したのかはわかりません。ログインコードには触れていないので、Facebook側の何かだと思います。
これが私の認証コードです:
router.get('/', passport.authenticate('facebook'), function(req, res){
});
router.get('/auth/facebook/callback', passport.authenticate('facebook', {
failureRedirect: '/' }),
function(req, res) {
res.redirect('/calendar');
});
基本的に、アプリのルートからユーザーを自動的に認証し、認証後に /calendar にリダイレクトする必要があります。
症状は次のとおりです。 root に移動しようとして、以前に Facebook でログインしていない場合、通常の Facebook ログイン画面が表示されます。しかし、その画面には、次の警告があります。
指定された URL はアプリケーションの設定で許可されていません 指定された URL の 1 つ以上がアプリケーションの設定で許可されていません。ウェブサイトの URL またはキャンバスの URL と一致するか、ドメインがアプリのドメインのいずれかのサブドメインである必要があります。
これに関連するすべての質問を確認しましたが、Facebook アプリの構成でアプリ ドメインとサイト URL を適切に構成していないことが原因のようです。しかし、それらはすべて問題ないはずです: アプリ ドメイン: localhost、サイト URL: http://localhost:3000/
それで、なぜそれについて不平を言っているのかわからないのですか?サブドメインはありません。私が持っているルートは (/, /calendar, /calendar/events) だけです。最後の /calendar/events ルートは ajax ルートです。とにかく、Facebook の資格情報を入力してログインすると、ページは次の URL を持つ空のページにリダイレクトされます: ( https://www.facebook.com/login.php?login_attempt=1 )。開発者ツールを開くと、コンソールに次のエラー メッセージが表示されます。
リソースのロードに失敗しました: サーバーは 500 のステータスで応答しました (内部サーバー エラー)
しかし、今は実際にログインしています。ルートまたは /calendar に移動すると、正しいページに移動し、適切にログインしていることがわかります。どうやらログインは機能しますが、リダイレクトと許可された URL にはいくつかの問題があります。私はただ何が何で、なぜなのか分からないようです。データベースとしてmongodDBを使用しています。