6月 11, 2017 - php开发, 有料    2 Comments

第三方登录–微博登录

我用的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');
        }

 

 

2 Comments

  • 哦哦,原来是这样,涨姿势了