使用React.js与Facebook Google Twitter进行身份验证

 密歇根的闪闪 发布于 2022-12-04 02:26

我正在通过我的应用通过Facebook和Google+等社交网站进行身份验证。我选择了React.js进行查看。

这是我的代码:


  

这是我使用LoginReact组件的代码。现在,我想尝试使用Facebook,Google +和Twiiter进行身份验证。

我为此创建了API:

"api": {
  "twitter": {
    "consumerKey": "value",
    "consumerSecret": "value,
    "token": "value",
    "tokenSecret": "value"
  },
  "facebook": {
    "clientId": "value",
    "clientSecret": "value",
    "callbackUrl": "url"
  },
  "google": {
    "clientId": "value",
    "clientSecret": "value",
    "callbackUrl": "url"
  }
}

请帮助我:如何在JSX代码中使用这些API?

1 个回答
  • 经过大量工作后,我现在可以使用React.js登录Facebook。

    <body>
    <button class="connect">Connect</button>
    <div class="target"></div>
    <div id="fb-root"></div>
    <script type="text/jsx">
    
      /**
       * @jsx React.DOM
       */
    
       var Profile = Backbone.Model.extend({
        defaults : {
          name    : null,
          gender  : null,
          picture : null
        }
      });
    
      var CardComponent = React.createClass({
        componentWillMount : function() {
          profile.on("change", (function() {
    
            this.forceUpdate();
    
          }.bind(this)));
        },
        componentWillUnmount : function() {
          profile.off("change");
        },
        render : function() {
          return (
            <div className="card">
              <div className="picture">
                <img src={this.props.profile.get("picture")} />
              </div>
              <div className="name">
                {this.props.profile.get("name")}
                <small>
                  ({this.props.profile.get("gender")})
                </small>
              </div>
            </div>
          );
        }
      });
    
      var connect = document.querySelector(".connect");
      var target  = document.querySelector(".target");
      var profile = new Profile();
      var fetchProfile = function() {
        React.renderComponent(
          <CardComponent profile={profile} />,
          target
        );
    
        FB.api("/me", "get", {}, function(result) {
          profile.set("name", result.name);
          profile.set("gender", result.gender);
        });
    
        var params = "?redirect=false&;
    
        FB.api("/me/picture" + params, "get", {}, function(result) {
          profile.set("picture", result.data.url);
        });
      };
    
      var login = function() {
        FB.login(function() {
          fetchProfile();
        });
      };
    
      window.fbAsyncInit = function() {
        FB.init({
          appId  : "238316539647012",
          status : true,
          xfbml  : true
        });
    
        connect.addEventListener("click", function() {
          login();
        });
    
        FB.Event.subscribe("auth.authResponseChange", function(response) {
          if (response.status === "connected") {
            fetchProfile();
          }
        });
      };
    
      (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/all.js";
         fjs.parentNode.insertBefore(js, fjs);
       }(document, "script", "facebook-jssdk"));
    </script>
    

    我在本教程中使用了ribs.js

    我觉得对某人有用

    2022-12-11 02:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有