第三方登录–微博登录
我用的WAMP + php 5,6 + Laravel 5.1.33
实现第三方登录首先就要明白oauth2.0协议:http://open.weibo.com/
wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
然后去open.weibo.com注册账号,新建一个自己的应用:
2:创建好之后就填一下授权机制(回调的url地址)
在你的微博图标上加上一个a连接:
<a href="https://api.weibo.com/oauth2/authorize?client_id=3092649390&redirect_uri=http://ziyou.tunnel.2bdata.com/weibo">
会跳转到微博登录界面:
登录成功后就会:
public function weibo(){
$weibocode = $_GET[‘code’];
//var_dump($weibocode);
$url = 'https://api.weibo.com/oauth2/access_token';
$data = [
'client_id' => '30926*****', //填写你的id,在你创建应用后就会给你了
'client_secret' => '03d3443affa58de235aa********', //填写你的app_key
'grant_type' => 'authorization_code',
'code' => $weibocode,
'redirect_uri' => 'http://ziyou.tunnel.2bdata.com/weibo',
];
$curl = curl_init($url); //开启curl
curl_setopt($curl,CURLOPT_POST,1) ; //以post方式发送
curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($data));//发送$data数据,并且用http_build_query处理一下
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); //需要返回值设置为1
$output = curl_exec($curl); //返回值给$output
curl_close($curl); //关闭curl
$res = json_decode($output,true);
$token = $res[‘access_token’];
$uid = $res[‘uid’];
$userinfo = file_get_contents('https://api.weibo.com/2/users/show.json?access_token='.$token.'&uid='.$uid);
echo '<pre>';
var_dump($userinfo); //这里就是返回你微博的个人信息了,接下来就是你自己处理得到的信息了
$ss = explode(',',$userinfo); //这是我处理的方式,完全可以忽略了
$name1 = explode(':',$ss[4]);
//echo "<br />";
$name = substr($name1[1],1,-1);
Session::put('name',$name);
DB::table('users')->insert([‘name’=>$name[1],’status’=>0]);
//dd($as[1]);
//dd(Auth::user()->name);
//echo Auth::user;
return redirect('zhgl');
}
哦哦,原来是这样,涨姿势了