Реагируйте на собственную аутентификацию с помощью Facebook SDK - PullRequest
0 голосов
/ 04 июля 2019

В моем родном приложении я хочу войти в свое приложение, используя Facebook. Я использую WordPress в качестве моего приложения. С помощью следующего кода я могу получить toekn после успешного входа в систему через Facebook SDK . Я также могу получить Facebook username, id другим API-вызовом на Facebook Graph API, но все еще не могу получить пользователя email.

Чтобы взаимодействовать с моим бэкэндом WordPress, каким должен быть подход? Должен ли я хранить электронную почту (я еще не получил) и другую информацию о пользователе в таблице wp_users? Как я могу проверить токен?

Мой пример кода:

import React, { Component } from "react";
import { View } from "react-native";
import { LoginButton, AccessToken } from "react-native-fbsdk";

class FBLoginButton extends Component {
  initUser(token) {
    fetch(
      "https://graph.facebook.com/v2.5/me?fields=email,name,friends&access_token=" +
        token
    )
      .then(response => response.json())
      .then(json => {
        console.log(json); //found only id, name
      })
      .catch(() => {
        reject("ERROR GETTING DATA FROM FACEBOOK");
      });
  }
  render() {
    return (
      <View>
        <LoginButton
          publishPermissions={["email"]}
          onLoginFinished={(error, result) => {
            if (error) {
              alert("Login failed with error: " + error.message);
            } else if (result.isCancelled) {
              alert("Login was cancelled");
            } else {
              alert(
                "Login was successful with permissions: " +
                  result.grantedPermissions
              );
              AccessToken.getCurrentAccessToken().then(data => {
                const { accessToken } = data;
                initUser(accessToken);
              });
            }
          }}
          onLogoutFinished={() => alert("User logged out")}
        />
      </View>
    );
  }
}

export default FBLoginButton;
...