php实现新浪微博第三方信任登录

现在的人越来越懒,以前的注册和登录的流程让很多用户讨厌起来,确实谁愿意记这么多用户名和密码呢,好吧上帝的要求我们必须要满足的。所以就有了第三方登陆这个东东,目前主要是 微信、微博、qq、淘宝、支付宝 等几个。他们都是基于oath2 协议的。原理差不多。这里记录的是我测试的新郎微博登陆。请需要的同学参考下。

一、pc版

1.下载开发的sdk包

https://github.com/xiaosier/libweibo 按照上面的安装方法解压缩到 vendor 目录(由于本人用的是yii2)。

在LoginController.php 里加入

use SaeTOAuthV2;
use SaeTClientV2;
use OAuthException;
session_start();
define( "WB_AKEY" , '********' );//需要在微博注册申请开发账号后有开发者后台-网站信息 查看
define( "WB_SKEY" , '**********' );
define( "WB_CALLBACK_URL" , 'http://www.niuhun.com/login/back' );//需要和后台设置的一致 接口管理-授权机制中 设置的成功后返回地址一致

中间加入

  

 /**

    登录的页面,生成登录按钮,按自己想要的放在view中

    */

public function actionSina(){ $o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );$code_url = $o->getAuthorizeURL( WB_CALLBACK_URL );echo 'login '; }

    /**

     * 登陆后返回本页面

     *

     * $user_message 数组常用内容  ["id"]=>

    int(1659806631)

    ["screen_name"]=>

    string(24) "爱上coding-原东厂pm"

    ["name"]=>

    string(24) "爱上coding-原东厂pm"

    ["province"]=>

    string(2) "33"

    ["city"]=>

    string(1) "1"

    ["location"]=>

    string(13) "浙江 杭州"

    ["avatar_large"]=>

    string(49) "http://tp4.sinaimg.cn/1659806631/180/5610346393/0"

    ["avatar_hd"]=>

    string(49) "http://tp4.sinaimg.cn/1659806631/180/5610346393/0"

    */

    public function actionBack()

    { 

if (isset($_REQUEST['code'])) {

$keys = array();

$keys['code'] = $_REQUEST['code'];

$keys['redirect_uri'] = WB_CALLBACK_URL;

$o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );

try {

$token = $o->getAccessToken( 'code', $keys ) ;

} catch (OAuthException $e) {

var_dump($e.message);

}

}

if (!empty($_SESSION['token'] )||$token) {

// $_SESSION['token'] = $token;

if($token){

setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );

echo '授权完成';

}

$c = new SaeTClientV2( WB_AKEY , WB_SKEY ,  $_SESSION['token']['access_token'] );

$c->set_debug(true);

$ms  = $c->home_timeline(); // done

$uid_get = $c->get_uid();

//     var_dump($uid_get);exit();

  $uid = $uid_get['uid'];

$user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息

   

}

    }

    

3.访问 image1.niuhun.com/login/sina 后点login 登陆-授权成功后返回 成功(通过个人认证前还需要到开发者中心设置测试账号才能使用)

4.登陆后与系统用户合并方案




参考网址:

http://open.weibo.com/qa/index.php?qa=%E5%BA%94%E7%94%A8%E5%AE%A1%E6%A0%B8

http://open.weibo.com/wiki/OAuth2/access_token

http://www.cnblogs.com/hooray/archive/2012/11/17/2774499.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部