PassportFacebookログインが正しいIDをMongoDBに保存していません

切断する

データベースを追加する前は、パスポートログインは正常に機能していました。

Facebook IDではないIDを保存しているようで、_IDを保存しているため、データベースからFacebookデータを取得できません。ですから、問題はデータベースに正しく保存されていないことだと思いますが、理由はわかりません。

   passport.serializeUser(function(user, done) {
     console.log('serializeUser: ' + user.id)
      done(null, user.id);
    });

    passport.deserializeUser(function(id, done) {
      console.log(id)
      User.findById(id, function(err, user){
         console.log(user)
         if(!err) done(null, user);
         else done(err, null)
     })
    });

    var sessionData = session({
      store: sessionStore.createSessionStore(),
      secret: "your_secret",
      cookie: { maxAge: 2628000000 },
      resave: true,
      saveUninitialized: true
    });

    passport.use(new FacebookStrategy({
        clientID: FACEBOOK_APP_ID,
        clientSecret: FACEBOOK_APP_SECRET,
        callbackURL: "/auth/facebook/callback",
        profileFields: ['id', 'name'],
        enableProof: false
      },
      function(accessToken, refreshToken, profile, done) {
        console.log("accesstoken: " + accessToken + "refreshToken " + refreshToken + "profile: " + profile.id + "done:" + done)
         User.findOne({
                'facebook.id': profile.id 
            }, function(err, user) {
                if (err) {
                    return done(err);
                }
                if (!user) {
                   user = new User({
                   facebookID: profile.id,
                   name: profile.displayName,
                    provider: 'facebook',
                    facebook: profile._json
                    });
                    user.save(function(err) {
                        if (err) console.log(err);
                        return done(err, user);
                    });
                } else {
                    //found user. Return
                    return done(err, user);
                }
            });
      }
    ));

    var app = express();

      app.set('views', __dirname + '/app/views');
      app.set('view engine', 'ejs');
      app.use(sessionData);
      app.use(logger("combined"));
      app.use(cookieParser());
      app.use(bodyParser.json());
      app.use(bodyParser.urlencoded({
        extended: true
      }));
      app.use(methodOverride());
      app.use(session({
          secret: "keyboard cat",
          saveUninitialized: true, // (default: true)
          resave: true, // (default: true)
        }));
      app.use(passport.initialize());
      app.use(passport.session());
      app.use(express.static(__dirname + '/app/public'));
      app.use(express.static(__dirname + '/'));

      var http    = require('http');
          server  = http.createServer(app);
          io      = require('socket.io')(server);


    app.get('/', function(req, res){
      res.render('index', { user: req.user });
    });

    app.get('/account', ensureAuthenticated, function(req, res){
        User.findById(req.session.passport.user, function(err, user) {
       if(err) {
         console.log(err);
       } else {
         res.render('account', { user: user});
       }
      });
    });

    app.get('/login', function(req, res){
      res.render('login', { user: req.user });
    });

    app.get('/auth/facebook',
      passport.authenticate('facebook'));

    app.get('/auth/facebook/callback',
      passport.authenticate('facebook', { failureRedirect: '/login' }),
      function(req, res) {
        res.redirect('/');
      });

    app.get('/logout', function(req, res){
      req.logout();
      res.redirect('/');
    });

レポはブランチにありますhttps://github.com/5-minute-catchup/ANEWREPO/tree/mongodb

フィービー
    User.findOne({
                    'facebook.id': profile.id 
    }

する必要があります:

    User.findOne({
                    facebookID: profile.id 
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Apple IDがXcodeにログインしていませんか?

分類Dev

マングースがmongodbにデータを保存していません

分類Dev

「Reduxがログインで正しく機能していません」

分類Dev

AndroidログインがDBに接続していません

分類Dev

GuzzleHttpがMonologでLaravelにログインしていません

分類Dev

PHP exec()がプロセスIDを保存していません

分類Dev

セッションにユーザーの詳細を保存しますが、まだLaravelにログインしていません

分類Dev

Xamarin Formsにログインしているときに、「タイプを保存できません:Xamarin.Forms.Entry」

分類Dev

ログイン時にパスが設定されていません-bashが正しくロードされていませんか?

分類Dev

chromelessが画像を正しい場所に保存していません

分類Dev

G + APIを介してログインしても、ユーザーはYouTubeの正しいアカウントにログインしません

分類Dev

MongoDBカウントが正しい数値を返していません

分類Dev

Google IdentityToolkitがログイン用のクライアントIDを取得していません

分類Dev

Ckeditorがボタンタグを保存していません

分類Dev

Djangoonetoonefieldがインスタンスを保存していません

分類Dev

Apple IDをXcodeに追加できません:セッションの有効期限が切れています。ログインしてください

分類Dev

マンデルブロプログラムが正しいデータを出力していません

分類Dev

ログインに応答してOIDを取得していませんか?

分類Dev

ユーザーがログインしているときにlocalstorageからアイテムを正しく取得できません

分類Dev

ActAsListGemが注文を正しく保存していません

分類Dev

SSHは、公開鍵がログインに使用されていることを示していません

分類Dev

jcabiがファイルにログインしていません

分類Dev

接続IOがコンソールにログインしていません

分類Dev

ファイルが正しく保存されていません

分類Dev

HTMLWebpackプラグインが正しいindex.htmlファイルを作成していません

分類Dev

Jqueryflotプラグインが日付に従ってグラフをプロットしていません

分類Dev

ログインが必要なデコレータがdjangoで正しく機能していません

分類Dev

WSO2IS-ActiveDirectoryログイン-正しく機能していません

分類Dev

ログインページが機能していません

Related 関連記事

  1. 1

    Apple IDがXcodeにログインしていませんか?

  2. 2

    マングースがmongodbにデータを保存していません

  3. 3

    「Reduxがログインで正しく機能していません」

  4. 4

    AndroidログインがDBに接続していません

  5. 5

    GuzzleHttpがMonologでLaravelにログインしていません

  6. 6

    PHP exec()がプロセスIDを保存していません

  7. 7

    セッションにユーザーの詳細を保存しますが、まだLaravelにログインしていません

  8. 8

    Xamarin Formsにログインしているときに、「タイプを保存できません:Xamarin.Forms.Entry」

  9. 9

    ログイン時にパスが設定されていません-bashが正しくロードされていませんか?

  10. 10

    chromelessが画像を正しい場所に保存していません

  11. 11

    G + APIを介してログインしても、ユーザーはYouTubeの正しいアカウントにログインしません

  12. 12

    MongoDBカウントが正しい数値を返していません

  13. 13

    Google IdentityToolkitがログイン用のクライアントIDを取得していません

  14. 14

    Ckeditorがボタンタグを保存していません

  15. 15

    Djangoonetoonefieldがインスタンスを保存していません

  16. 16

    Apple IDをXcodeに追加できません:セッションの有効期限が切れています。ログインしてください

  17. 17

    マンデルブロプログラムが正しいデータを出力していません

  18. 18

    ログインに応答してOIDを取得していませんか?

  19. 19

    ユーザーがログインしているときにlocalstorageからアイテムを正しく取得できません

  20. 20

    ActAsListGemが注文を正しく保存していません

  21. 21

    SSHは、公開鍵がログインに使用されていることを示していません

  22. 22

    jcabiがファイルにログインしていません

  23. 23

    接続IOがコンソールにログインしていません

  24. 24

    ファイルが正しく保存されていません

  25. 25

    HTMLWebpackプラグインが正しいindex.htmlファイルを作成していません

  26. 26

    Jqueryflotプラグインが日付に従ってグラフをプロットしていません

  27. 27

    ログインが必要なデコレータがdjangoで正しく機能していません

  28. 28

    WSO2IS-ActiveDirectoryログイン-正しく機能していません

  29. 29

    ログインページが機能していません

ホットタグ

アーカイブ