PHP Facebook 第三方登录

申请

创建应用

  • 点击创建应用, 按提示创建应用
  • 设置-基本设置, 填写基本信息, 记录对应appId 和 秘钥
  • 在产品中添加facebook登录
  • OAuth 客户端授权设置, 跳转地址
  • 应用审核-权限和功能: 开启获取email权限

代码

html

<a href="javascript:fbLogin()"> facebook </a>

<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js"></script>
<script>
    window.fbAsyncInit = function() {
        FB.init({
        appId      : 'xxxxxxxx',
        cookie     : true,
        xfbml      : true,
        version    : 'v15.0'
        });      
        FB.AppEvents.logPageView();         
	};

    function fbLogin() {
    	FB.login(function (response) {
            if (response.authResponse) {
                checkLoginState()
            } else {
                showPopup('error', 'User cancelled login or did not fully authorize.');
                // console.log('User cancelled login or did not fully authorize.');
            }
        }, { scope: 'email, public_profile', return_scopes: true});
	}

    function checkLoginState() {
	    FB.getLoginStatus(function(response) {
	      statusChangeCallback(response);
	    });
    }

    function statusChangeCallback(response) {
        if (response.status === 'connected') {
        	// 登陆状态已连接
            FB.api('/me?fields=id,name,email', function(response) {
                // 获取用户信息后, 请求接口存储信息, 下方写一个php方法处理数据即可
                $.post('/facebookLogin', {userdata:response},function(data){
                    if(data.status == 200){
                        showPopup('success','Login Success!','1500');
                        $('.generalPop').on('hidden.bs.modal', function(){
                            window.location.reload();
                        });
                    }else{
                        showPopup('error', data.message);
                    }
                });
            // console.log('Successful login for: ' + response);
            });
        } else if (response.status === 'not_authorized') { //未经授权
            showPopup('error', 'Not_authorized');
            // console.log('facebook未经授权');
        } else {
            // console.log('不是登陆到Facebook;不知道是否授权');
        }
    }
</script>

PHP

    /**
     * Facebook 登录
     */
    public function facebookLogin(Request $request)
    {
    	// 得到用户信息 id, name, email
        $userData = $request->userdata;
        if(!isset($userData['email'])){
            return response()->json(['status' => 401, 'message' => 'We need your Email!']);
        }
      	// 处理自己的注册/登录信息
           
        return response()->json(['status' => 200]);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值