Обновить страницу и FacebookTokenError: этот код авторизации был использован - PullRequest
0 голосов
/ 13 февраля 2020

Я могу пройти проверку подлинности с помощью паспортной стратегии Facebook, но при перезагрузке страницы уже прошла проверку подлинности, это сообщение появляется, и мой URL остается таким:

http://localhost:3000/facebook/callback?code=AQB-ijUybyMQAZ7p7eXmwWT1DcDCdX6ugw_KVUAKUHIeLxTJtH4JeVKPA3tGu1_p40NxOUwtUg0cyhy1WTKPfSXTMUWIvXoOpiE3-J48u65XSED0Op2PVmrFbYforijwGJnF3EsJbzF8gBhR-eBP7kH9qekDl86Jyue8uRDulXOQLyXsftfPNlCP6UYQVm1ATAJLHINkWo3UWLswxMEQUp8F-Dj3X6U0vMFf4ePbhBK8k2Oxjfnru67p9UWGHFgt1OAtdogdV769wDCRIOgjf3NkhAjDE3r-w20j9yiCBzIIxLWzA7PWJBLeLWrfhBruWc5LOqTgSeOL5Av-hKe0_TFwixB4JV3RQN97gmzdU1F4sA#_=_
FacebookTokenError: This authorization code has been used.
    at Strategy.parseErrorResponse (C:\FullStack\#FullStack Master\ARafas\node_modules\passport-facebook\lib\strategy.js:198:12)
    at Strategy.OAuth2Strategy._createOAuthError (C:\FullStack\#FullStack Master\ARafas\node_modules\passport-oauth2\lib\strategy.js:405:16)
    at C:\FullStack\#FullStack Master\ARafas\node_modules\passport-oauth2\lib\strategy.js:175:45
    at C:\FullStack\#FullStack Master\ARafas\node_modules\oauth\lib\oauth2.js:191:18
    at passBackControl (C:\FullStack\#FullStack Master\ARafas\node_modules\oauth\lib\oauth2.js:132:9)
    at IncomingMessage.<anonymous> (C:\FullStack\#FullStack Master\ARafas\node_modules\oauth\lib\oauth2.js:157:7)
    at IncomingMessage.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1094:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)

Вот мой код:

    passport.use(new FacebookStrategy({
        clientID: '1295499857504314',
        clientSecret: 'a9506b875166b85a4f32b997a4696bac',
        callbackURL: 'http://localhost:3000/facebook/callback',
        profileFields: ['id', 'displayName', 'email', 'photos']
      }, async(accessToken, refreshToken, profile, done) => {
            if(!userDB){
                const user = new User({
                    username: profile.email,
                    displayName: profile.displayName,
                })
                await user.save()
                done(null, user)
            }else{
                done(null, userDB)
            }
      }))
    router.get('/facebook', passport.authenticate('facebook', { scope: ['email']}))

    router.get('/facebook/callback', 
                passport.authenticate('facebook', { failureRedirect: '/login'}),
                async (req, res) =>{
                    res.render('/parties');
                }    
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...