facebook第三方登錄
Laravel PHP7.3
fb第三方登錄使用的是官方提供的sdk很簡單 只需要簡單引用即可
<li class="sc-fb">
<a class="animate" href="javascript:fbLogin()">
<img src="/images/login-btn-fb.png" alt="Facebook" title="Login With Facebook">
</a>
</li>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId : 'XXXXXXXX',
cookie : true,
xfbml : true,
version : 'v3.0'
});
FB.AppEvents.logPageView();
};
(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 = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
function fbLogin() {
FB.login(function (response) {
if (response.authResponse) {
FB.api('/me', function (response) {
// console.log('Good to see you, ' + response.name + '.');
checkLoginState();
});
} else {
// console.log('User cancelled login or did not fully authorize.');
}
}, {
scope: 'email',
// scope: 'publish_actions',
return_scopes: true
});
}
function checkLoginState() {
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
function statusChangeCallback(response) {
if (response.status === 'connected') { //登陸狀態(tài)已連接
FB.api('/me', function(response) {
var referer=$("input[name='referer']").val();
$.post('/ajax/SocilaAuthLogin',{
data:{userdata:response,type:'facebooklogin'},
},function(data){
var data=JSON.parse(data);
art.dialog({
title:'{{$LANG['PUBLIC']['TIPS']}}',
icon: data['icon'],
content:data['tips'],
okVal:'ok'
});
window.location.reload();
});
// console.log('Successful login for: ' + response);
});
} else if (response.status === 'not_authorized') { //未經(jīng)授權(quán)
// console.log('facebook未經(jīng)授權(quán)');
} else {
// console.log('不是登陸到Facebook;不知道是否授權(quán)');
}
}
</script>
返回?cái)?shù)據(jù)再通過ajax返回后臺(tái)進(jìn)行登錄驗(yàn)證或者注冊(cè)操作 后續(xù)會(huì)補(bǔ)充下來