[ErrorLog]Facebook passport検証エラー


Facebookログイン、会員登録実施で以下のエラーが発生しました.TypeError: OAuth2Strategy requires a verify callback
  • エラーコード
  • passport.use(
      new FacebookStrategy({
        // appId와 secretId 발급
        clientID: process.env.FACEBOOK_APPID,
        clientSecret: process.env.FACEBOOK_SECRETCODE,
        callbackURL: `${process.env.SITE_DOMAIN}/auth/facebook/callback`,
        profileFields: ["id", "displayName", "photos", "email"],
      }),
      async (accessToken, refreshToken, profile, done) => {
        console.log(accessToken, refreshToken);
        console.log(profile);
      }
    );
    
    router.get("/facebook", passport.authenticate("facebook", { scope: "email" }));
    
    router.get(
      "/facebook/callback",
      passport.authenticate("facebook", {
        successRedirect: "/auth/facebook/success",
        failureRedirect: "/auth/facebook/fail",
      })
    );
    
    router.get("/facebook/success", (req, res) => {
      res.send(req.user);
    });
    
    router.get("/facebook/fail", (req, res) => {
      res.send("facebook login fail");
    });
    Facebookログインポリシーが成功した場合、requestユーザー情報をjsonに出力する必要があります.
    失敗した場合は、facebook login failのメッセージの返却を要求します.
    エラーメッセージにはコールバックURLの問題があるようなので、いろいろ試してみました.
    解決できないので、このエラーをGoogle化しました.

    検索により、次のスタックオーバーフローの問題を確認できます.
    このページにログインし、回答内容を確認しました.

    この質問者は、以下に示すように、FacebookStrategyの仕様としてオブジェクトとコールバック関数を提供する必要があります.
    初めてと同様に,オブジェクトのみを芸術とし,コールバック関数をpassport.useの芸術として与えた.
    私が書いたコードにも同じエラーが見つかったことを確認しました.
    もう少しで長いシャベルタイムになるところだったが、やはりスタックオーバーフローはtheloveだった.