ThinkPHP微博第三方登陆

来源:互联网 发布:centos 压缩zip 编辑:程序博客网 时间:2024/06/06 01:39

1 html 中增加链接

<a class="login_weibo" href="http://www.weibo_login.com/WapWeibo/login?referer={$Think.get.referer}"><img src="/images/meg_04.png" alt="" /></a>

2 在ThinkPHP中,ThinkPHP-Extend-Vendor放入微博第三方登陆接口

3设置微博登陆配置

<?phpheader('Content-Type: text/html; charset=UTF-8');define( "WB_AKEY" , '182****' );define( "WB_SKEY" , 'b8e*****' );define( "WB_CALLBACK_WAPURL" , 'http://www.weibo_login.com/WapWeibo/callback' );//登录成功返回地址


4处理流程 

WB_AKEY和WB_SKEY申请微博第三方登陆可以获取

<pre name="code" class="php"><?php /** * 微博登录 *  * */class WapWeiboAction extends Action{/** * 登录请求 *  */public function login(){//载入APIVendor('weibo/api');//获取请求来源链接$referer=$_GET['referer'];if(!empty($referer)){session("weiboLogin_referer",$referer);}$o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );$code_url = $o->getAuthorizeURL( WB_CALLBACK_WAPURL );header('Location:'.$code_url);}/** * 登录成功返回地址 * @author xuxiaojie 2014-12-01 */public function callback(){Vendor('weibo/api');$o = new SaeTOAuthV2( WB_AKEY , WB_SKEY );if (isset($_REQUEST['code'])) {$keys = array();$keys['code'] = $_REQUEST['code'];$keys['redirect_uri'] = WB_CALLBACK_WAPURL;try {$token = $o->getAccessToken( 'code', $keys ) ;} catch (OAuthException $e) {}}//验证签名if ($token) {$_SESSION['token'] = $token;setcookie( 'weibojs_'.$o->client_id, http_build_query($token) );//$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );//$ms  = $c->home_timeline(); // done//$uid_get = $c->get_uid();$uid = $_SESSION['token']['uid'];//$user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息$nickname=$uid;$username=$uid;$userModel = D('User');$data = array('user_name' => $username, //5454099547'site_id' => '62');$user_id = $userModel->local_login_member($data);if (!empty($user_id)) { //如果用户存在直接登录session( C('USER_AUTH_KEY'), $user_id );session('account',$username);session('nickname',$nickname);$session_id = cookie('session_id') ? cookie('session_id') : session_id();//写入用户登录记录表$source = 2;$browser = determinebrowser($_SERVER['HTTP_USER_AGENT']);$browserAgent = $browser['browseragent'];$browserVersion = $browser['browserversion'];$platform = determineplatform($_SERVER['HTTP_USER_AGENT']);$preData = array('user_id' => $user_id,'account' => $username,'browserAgent' => $browserAgent,'browserVersion'=> $browserVersion,'platform' => $platform,'ip' => get_client_ip(),'source' => $source,'regTime' => time());M('user_login_log')->add($preData);//购物车修改$session_id = cookie('session_id') ? cookie('session_id') : session_id();D('User/Cart')->change_userid($user_id,$session_id);//登录送10积分$integral=10;$userModel->integral_change($user_id, $integral, '登录成功,赠送'.$integral.'积分');//跳转到来源页面$referer=session("weiboLogin_referer");if(empty($referer)){$this->redirect('/User/index',1);}else{header('Location:'.$referer);}} else {//如果用户不存在先注册再登录$ip=get_client_ip() ;$data = array('user_name' => $username,'password' => md5($username.time()),'reg_time'=> date("Y-m-d H:i:s" ,time()),'site_id' => '62','source' => '2', //注册来源[0:PC, 1:APP, 2:WAP]'ip' => $ip,);$user_id = $userModel->local_add_member($data);//var_dump($userModel);exit;if(!empty($user_id)){session( C('USER_AUTH_KEY'), $user_id );session('account',$username);session('nickname',$nickname);$integral = 50;$userModel->integral_change($user_id, $integral, '注册成功,赠送'.$integral.'积分');//购物车修改$session_id = cookie('session_id') ? cookie('session_id') : session_id();D('User/Cart')->change_userid($user_id,$session_id);}session('verify', null);//跳转到来源页面$referer=session("weiboLogin_referer");if(empty($referer)){$this->redirect('/User/index',1);}else{header('Location:'.$referer);}}} else {echo("授权失败");header('Location:'.$referer);}}}?>




0 0
原创粉丝点击