Сообщение при авторизации на Facebook для разработчиков платформы - PullRequest
0 голосов
/ 03 апреля 2020

У меня появляется это сообщение, когда я пытаюсь подключиться к Facebook platefirme с помощью моего приложения по паспорту js. Это сообщение:

Приложение не настроено: это приложение находится в стадии разработки, и вы не можете получить к нему доступ. Используйте авторизованную тестовую учетную запись пользователя или обратитесь к администратору приложения для получения прав доступа. У кого-то есть идея, как решить эту проблему, пожалуйста? Это из-за конфигурации платформы (разработчика facebook) или конфигурации моего приложения?

Вот мой код:

/*******************FACEBOOK AUTH*************************/
    passport.use(
        new FacebookStrategy({
            // options for facebook strategy
            clientID: XXXXXXXXXXXXXXXXXX,
            clientSecret: "XXXXXXXXXXXXXXXXXXXXX",
            callbackURL: "http://localhost:3001/auth/facebook/callback",
            profileFields : ['id', 'displayName', 'email']
        }, (accessToken, refreshToken, profile, done) => {
            // passport callback function
            console.log('passport callback function fired:');
            console.log(profile);
            if(profile!==null){
                var id = profile.id;
                var email = profile.email;

                console.log(id);
                console.log(email);
                var strfullname = profile.displayName;
                var fullname = strfullname.split(/(\s+)/);
                var nom = fullname[2];
                var prenom = fullname[0];
                console.log("nom "+ nom);
                console.log("prenom "+ prenom);
                Account.findOne({'email' : email},function (err, account){
                    if(err){
                        console.log(err);
                        done(err);
                    }
                    if(account){//exist
                        if(err){
                            console.log(err);
                            done(err);
                        }  
                        else {//get account
                            console.log('currentAccount');
                            //check if enable = true
                            if(account.enable===true){
                                //send token
                                try{
                                    jwt.sign({
                                        account
                                    },config.secretKey,
                                    (err,token)=>{
                                        if(err){
                                            done(err)
                                        }
                                        else{
                                            done(null,token);
                                        }
                                    });
                                }
                                catch(e){
                                    done(err);
                                }
                            }else{
                                done("This account is disabled, please contact support for more information",null);
                            }
                        }
                    }
                    else{//new account
                        if(err)
                        {
                            console.log(err);    
                            done(err);
                        }

                        const account = new Account({
                            email : email,
                            nom : nom,
                            acceptCGU : true,
                            prenom : prenom,
                            facebook : {
                                id : id,
                                email : email,
                                name : strfullname
                            }
                        });
                        //save data
                        account.save((err => {
                            if(err){
                                console.log(err);
                                done(err);
                            } 
                            else{
                                console.log('newaccount');
                                //send email
                                var smtpTransport = nodemailer.createTransport({
                                    service : 'gmail',
                                    auth : {
                                        user : "xxxxx.xxxxx@gmail.com",
                                        pass : "xxxxxxxxx"
                                    }
                                });
                                var mailOptions = {
                                    to : email,
                                    from : "xxxxx.xxxxx@gmail.com",
                                    subject : "Bienvenue chez XXXXX !",
                                    text : "Bienvenue chez xxxxxx ! \n \n Votre compte : "+email+" a bien été créé. \n \n Nos dernières offres exclusives n'attendent plus que vous sur notre site xxxxx.\n A bientôt ! \n \n L'équipe XXXX"
                                }
                                smtpTransport.sendMail(mailOptions,function(err){
                                    if(err){
                                        res.status(400);
                                        resultats = {
                                            "success": false,
                                            "message": 'Error : '+ err,
                                            "result": ''
                                        }
                                        res.json(resultats);
                                    }
                                    else{
                                       //send token
                                        try{
                                            jwt.sign({
                                                account
                                            },config.secretKey,
                                            (err,token)=>{
                                                if(err){
                                                    done(err)
                                                }
                                                else{
                                                    done(null,token);
                                                }
                                            });
                                        }
                                        catch(e){
                                            done(err);
                                        }
                                    }
                                });
                            }
                        }));
                    }
                });
            }

        })
    );

И маршруты:

/*******************FACEBOOK AUTH ROUTES********************* */
// auth with faceboook
router.get('/auth/facebook', passport.authenticate('facebook'));
// callback route for facebook to redirect to
// hand control to passport to use code to grab profile info
router.get('/auth/facebook/callback*', passport.authenticate('facebook'), (req, res) => {
    if(req.user){
        res.cookie('token', req.user);
        return res.redirect("http://localhost:3000");
    }
    else{
        console.log('error');
        return res.redirect("http://localhost:3000");
    }
});
...