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') { //登陆状态已连接
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') { //未经授权
// console.log('facebook未经授权');
} else {
// console.log('不是登陆到Facebook;不知道是否授权');
}
}
</script>
返回数据再通过ajax返回后台进行登录验证或者注册操作 后续会补充下来