Не работает API Graph Facebook в AWS Lambda? - PullRequest
0 голосов
/ 30 августа 2018

Итак, я пытался заставить аутентификацию Facebook работать. Локально мой код работает отлично. После входа в Lambda с использованием Claudia логин на Facebook перестает работать. У меня авторизован URL-адрес для входа в настройки Facebook для разработчиков

var FB = require('fb');
FB.options({ version: 'v2.7' });
fb = new FB.Facebook({});
var bcrypt = require('bcryptjs');
var UserService = require('../services/user.service');
var config = require('../config');
var jwt = require('jsonwebtoken');
_this = this

exports.getFBLoginCredentials = async function (req, res, next) {
    try {
        let access_token = req.body.facebook_token;

        FB.setAccessToken(access_token);

        let facebookInfo = await new Promise(function (resolve, reject) {
            FB.api('me/', { locale: 'en_US', fields: 'first_name, last_name, email' }, function (response) {
                if (!response || response.error) {
                    reject(Error('Facebook Auth failed'));
                }
                resolve(response);
            });
        });
        let user = await UserService.findUserByEmail(facebookInfo.email);

        if (user) {
            let updatedToken = await _createToken(user, 1);
            let updatedRefreshToken = await _createToken(user, 7);

            user.token = updatedToken;
            user.refreshToken = updatedRefreshToken;
            user.facebookToken = access_token;
            user.emailVerified = true;

            await UserService.updateUser(user);

            return res.status(200).json({ status: 200, data: user, message: "Successfully Retrieved data" });;
        }
        let userFields = {
            name: facebookInfo.first_name + ' ' + facebookInfo.last_name,
            email: facebookInfo.email,
            emailVerified: true,
            facebook_token: access_token
        }
        let createdUser = await UserService.createUser(userFields);

    return res.status(200).json({ status: 200, data: createdUser, message: "Successfully Retrieved data" });
    }
    catch (error) {
        return res.status(400).json({ status: 400, message: error.message });
    }
}

1 Ответ

0 голосов
/ 31 августа 2018

Разобрался. Оказывается, что время ожидания AWS Lambda было установлено равным 3,0 секунды, но вызов занял больше времени.

...