AWS Amplify Facebook Login, федеративные удостоверения - PullRequest
0 голосов
/ 10 марта 2019

Я использую пользовательские пулы Cognito для управления регистрацией пользователей и входом в систему в собственном приложении expo. Я также хочу войти через Facebook. В документации сказано, что нам не нужно использовать Auth.federatedSignIn (), если вы уже используете Cognito User Pools, поэтому я не уверен, что еще использовать и как?

https://aws-amplify.github.io/docs/js/authentication#federated-identities-social-sign-in

вот мой код

loginFB = async (params) => {
        try {
            const {
                type,
                token,
                expires,
                permissions,
                declinedPermissions,
            } = await Facebook.logInWithReadPermissionsAsync('414271525994061', {
                permissions: ['public_profile,email'], behavior: 'native'
            });

            console.log('type:', type);
            console.log('token:', token);

            if (type === 'success') {
        // Get the user's name using Facebook's Graph API

                const response = await fetch(`https://graph.facebook.com/me?access_token=${token}`);
        // Alert.alert('Logged in!', `Hi ${(await response.json()).name}!`);

        const user = {
          name: response.name,
          email: response.email
        };

        const date = new Date();

        const expires_at = expires * 1000 + date.getTime();

        Auth.federatedSignIn('facebook', { token, expires_at }, user)
                .then(credentials => {
                    console.log(credentials);
                });

            } else {
                // type === 'cancel'
            }
        } catch ({ message }) {
            alert(`Facebook Login Error: ${message}`);
        }
    }
...