1. 程式人生 > >微博第三方登入介面

微博第三方登入介面

有千峰視訊微博第三方登入的截圖(在另外一篇文章我單獨發出來)

下面發我做出來的原始碼(sdk的兩個類拆出來分別存放到extend檔案裡面),

還有

WB_AKEY,WB_SKEY,WB_CALLBACK_URL,這三個都要在extra裡面單獨建一個檔案return你有的賬號密碼以及回撥用地址
我的目錄格式如下:
這個我除錯的時候出了不少問題(一直重新整理同一個頁面),後來發現獲取授權傳回來的code是隻能用一次的,同一個頁面(我是在回撥函式那裡一直報錯)一直重新整理,還一直找不到exception的丟擲異常的類,其實那個傳回來的code是隻能使用一次的,同一個code,在callback裡面獲取不了access_token的值(引數傳過去微博那邊認證會報錯,因為是同一個),所以除錯完再重新登入吧.....
<?php
namespace app\api\controller;
use think\Controller;
use think\Session;
use think\Request;
use sina\SaeTOAuthV2;
use sina\SaeTClientV2;
class sinalogin extends Controller
{
private $wb_akey;
private $wb_skey;
private $wb_callback_url;
public function __construct(){
parent::__construct();
$this->wb_akey = config('weibo.WB_AKEY'); $this->wb_skey = config('weibo.WB_SKEY'); $this->wb_callback_url = config('weibo.WB_CALLBACK_URL'); } public function weibo()//給登入圖示一個驗證連結 { print_r($this->wb_callback_url);exit(); $o=new SaeTOAuthV2($this->wb_akey,$this->wb_skey); $code_url
=$o->getAuthorizeURL( $this->wb_callback_url,$response_type = 'code',$display = 'popup'); // $this->assign ('code_url', $code_url); return $this->redirect($code_url); } public function callback(){ $o =new SaeTOAuthV2($this->wb_akey,$this->wb_skey); $key=array(); $param=Request::instance()->param(); //dump($param);檢查是可以獲取那些引數 $keys['code']=$param['code']; $keys['redirect_uri']=$this->wb_callback_url; $token=$o->getAccessToken('code',$keys); // $o=new SaeTClientV2($this->wb_akey,$this->wb_skey,Session::get('token')['access_token']); // $uid_get=$o->get_uid(); // dump($uid_get); // exit(); // $uid=$uid_get['uid'];//這些是我本來以為token裡面沒有uid,後來呼叫操作類去重新獲取,沒想到認證類已經把uid傳在token裡面了 if($token){ Session::set('token',$token);//放進session return $this->redirect('account/reginfo');//成功返回calllback }else{ return $this->error('授權失敗'); } } }