首先要到facebook那申请第三方登录,申请完会得到一个client_id,一个ID对应一个APP的
前端
var token = Math.random().toString(36).substr(2);
var url = syslinks + "oauth/token/" + token;//回调地址
plus.nativeUI.showWaiting("");
$.openWindow({
url: "https://m.facebook.com/dialog/oauth?client_id=**xxx**&response_type=code&redirect_uri=" + url + "&scope=email,public_profile",
id: 'facebook',
createNew: true,
show: {
aniShow: 'pop-in'
}
});
然后自己写个定时器或什么的,查询下就好
后端,我用的是thinkkphp
/**
* 第三方登陆
*/
public function oauth(){
$code = I("get.code");
$uid = I("uid");
$token = I("token");
$nickname = I("nickname");
if(!$uid || !$token) exit(json_encode(array('status'=>0,'msg'=>"error")));
$oauth = M('oauth')->where(array("token"=>$token,"uid"=>$uid))->find();
if($oauth){
$user_id = $oauth['user_id'];
}else{
$data = array();
$data['nickname'] = $nickname;
$data['reg_time'] = strtotime(date('Y-m-d H:i:s'));
$user_id = M('users')->add($data);
$data = array();
$data["uid"] = $uid;
$data["token"] = $token;
$data["user_id"] = $user_id;
M('oauth')->add($data);
}
$user = M("users")->find($user_id);
exit(json_encode(array('status'=>1,'msg'=>$user)));
}