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