0

私はeveryauthとFacebookでユーザー認証を行ってきましたが、すべてうまくいきます。今、私は Facebook に投稿する機能を統合したいと考えています。私のアプリは、ユーザーが最初にログインしたときにメール スコープのみを要求するため、より大きな FB スコープを取得する必要があり、FB ガイドラインに従い、必要な場合にのみこの追加のスコープを要求するようにしています。

ドキュメントに従って、everyauth 構成に次のコードを追加しました。

everyauth
.facebook
    .appId(conf.fb.appId)
    .appSecret(conf.fb.appSecret)
    //TODO add custom redirect for when authentication is not approved
    .scope(function (req, res) {
        console.log('Setting FB scope');
        console.log('Session: ' + util.inspect(req.session));
        var session = req.session;
        switch (session.userPhase) {
            case 'share-media':
                return 'email,user_status';
            default:
                return 'email';
        }
     })

認証されていないユーザーがアプリケーションにログインするときは、すべて問題ありません。問題は、req.session.userPhase を「share-media」に設定して FB スコープで「アンティを上げたい」場合に、/auth/facebook へのリンクを提示して、許可したいことを確認することです。 FBに投稿。こうなると、上記のコードから req.session is undefined というエラーが出ます(req がすべて undefined です)。

これは、以前にログインしたユーザーが本質的に再認証しているためだと思いますが、Facebook からより多くの範囲を取得する方法ではありませんか? 私はこれについて間違った方法で進んでいますか?

ありがとう!!!

4

0 に答える 0