sql >> データベース >  >> NoSQL >> MongoDB

Facebook-JWTを使用したパスポート

    その問題に対して私が見つけた最善の解決策は、JWTを保持するCookieを使用して予期されたページにリダイレクトすることです。

    res.jsonを使用する json応答のみを送信し、リダイレクトしません。そのため、ここで提案されている他の回答では、私が遭遇した問題は解決されません。

    したがって、私の解決策は次のようになります。

    app.get('/auth/facebook/callback',
    passport.authenticate('facebook', {
        session: false,
        successRedirect : '/',
        failureRedirect : '/'
    }), (req, res) => {
        var token = req.user.jwtoken;
        res.cookie('auth', token); // Choose whatever name you'd like for that cookie, 
        res.redirect('http://localhost:3000'); // OR whatever page you want to redirect to with that cookie
    });
    

    リダイレクト後、Cookieを安全に読み取り、そのJWTを期待どおりに使用できます。 (実際には、ページが読み込まれるたびにCookieを読み取って、ユーザーがログインしているかどうかを確認できます)

    前に述べたように、クエリパラメータとしてJWTを使用してリダイレクトすることは可能ですが、それは非常に安全ではありません.Cookieを使用する方が安全であり、クエリパラメータとは異なり、Cookieをさらに安全にするために使用できるセキュリティソリューションがまだあります。明らかに安全ではありません。



    1. マングースfindOneAndUpdate複数のフィールドの更新

    2. マングースの個体数と骨材

    3. mongoDBプレフィックスワイルドカード:fulltext-search($ text)search-stringでパーツを検索

    4. Node.jsを介してMongoDBに挿入します