Получение OVERRIDING ACCESS_TOKEN предупреждения о кнопке выхода из Facebook.Это началось неделю назад - PullRequest
4 голосов
/ 11 июня 2019

Я использую логин через Facebook, используя FB javascript SDK 3.3 . Когда я нажимаю logout , я получаю предупреждение в своей консоли.

Вы переопределяете текущий токен доступа, это означает, что какое-то другое приложение ожидает другой токен доступа, и вы, вероятно, сломаете его. Пожалуйста, рассмотрите передачу access_token напрямую в параметры API, а не переопределяйте глобальные настройки.

console

Вот фиктивный компонент реакции, где я тестирую логин FB.

import React, { Component } from 'react'
import config from "../util/config";

export default class LoginTest extends Component {
  constructor(props) {
    super(props);
    this.state = {
      loggedin: undefined,
      username: "",
    }
  }

  componentDidMount() {
    let that = this;
    window.fbAsyncInit = function () {
      window.FB.init({
        appId: config.FB_APP_ID,
        cookie: true,
        xfbml: true,
        version: 'v3.3'
      });
      window.FB.getLoginStatus(function (response) {
        if (response.status === 'connected') {
          that.setState({ loggedin: true, username: response.authResponse.userID })
        }
        else that.setState({ loggedin: false });
      });
    };

    (function (d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/sdk.js";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
  }

  login = () => {
    let that = this;
    this.setState({ loggedin: undefined });
    window.FB.login(function (response) {
      if (response.status === 'connected') {
        console.log("success", response);
        that.setState({ loggedin: true, username: response.authResponse.userID })
      } else {
        console.log("fail", response);
        that.setState({ loggedin: false, username: "" })
      }
    });
  }

  logout = () => {
    this.setState({ loggedin: undefined });
    let that = this;
    window.FB.logout(function (response) {
      if (response.status !== 'connected') {
        that.setState({ loggedin: false, username: ""});
      } else {
        that.setState({ loggedin: true, username: "" });
      }
    });
  }

  render() {
    return (
      <div style={{ margin: "auto", textAlign: "center", marginTop: 200 }}>
        {this.state.loggedin === undefined ?
          <h1>Loading</h1> : null
        }
        {this.state.loggedin === true ?
          <div>
            <h4>{this.state.username}</h4>
            <button onClick={this.logout}>logout</button>
          </div>
          : null
        }
        {this.state.loggedin === false ?
          <div>
            <button onClick={this.login}>Login</button>
          </div> : null
        }
      </div>
    )
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...