PHPcms 把盛大登陆换成人人网登陆
生活随笔
收集整理的這篇文章主要介紹了
PHPcms 把盛大登陆换成人人网登陆
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先要確保你的 phpcms是比較新的版本, v9.3以后的吧
這里說明一個函數 rawurlencode() 本函數將字符串編碼成 URL 的字符串專用格式,特殊的字符會轉換成百分比符號后面加上二個十六位數字的格式。例如,空格就會變成 %20。
修改member/class/OauthSDK.class.php
protected $systemParam = array('connectTimeout' => 5 , 'timeout' => 3 , 'gatewayUrl' => 'http://api.renren.com' , 'authorizeURL' => 'http://graph.renren.com/oauth/authorize' , 'accessTokenURL' => 'https://graph.renren.com/oauth/token' , 'systemTokenURL' => 'https://graph.renren.com/oauth/token' , 'gatewayHost' => 'api.renren.com' , 'gatewayPort' => 8888); //Get accesstokenpublic function getAccessToken ($code){$this->_clearError();$clientID = $this->appId;$redirectURI = $this->redirectURI;$clientSecret = $this->appSecret;$accessTokenURL = self::accessTokenURL();$url = "{$accessTokenURL}?&grant_type=authorization_code&code={$code}&client_id={$clientID}&client_secret={$clientSecret}&redirect_uri={$redirectURI}";$result = self::http($url);$access_token = json_decode($result, TRUE);if (empty($access_token) || isset($access_token['error'])) {$this->_setOAuthError($access_token);return FALSE;} else {return $access_token;}}?修改member/index.php 中的代碼
/*** 盛大通行證登陸 自己修改為人人登陸接口*/public function public_snda_login() {define('SNDA_AKEY', pc_base::load_config('system', 'snda_akey'));define('SNDA_SKEY', pc_base::load_config('system', 'snda_skey'));define('SNDA_CALLBACK', urlencode(APP_PATH.'index.php?m=member&c=index&a=public_snda_login&callback=1'));pc_base::load_app_class('OauthSDK', '' ,0);$this->_session_start(); if(isset($_GET['callback']) && trim($_GET['callback'])) {$o = new OauthSDK(SNDA_AKEY, SNDA_SKEY, SNDA_CALLBACK);$code = $_REQUEST['code'];$accesstoken = $o->getAccessToken($code);//var_dump($accesstoken['user']['id']);exit();if(is_numeric($accesstoken['user']['id'])) {$userid = $accesstoken['user']['id'];$username = $accesstoken['user']['name'];} else {showmessage(L('login_failure'), 'index.php?m=member&c=index&a=login');}if(!empty($userid)) {//檢查connect會員是否綁定,已綁定直接登錄,未綁定提示注冊/綁定頁面$where = array('connectid'=>$userid, 'from'=>'renren');$r = $this->db->get_one($where);//connect用戶已經綁定本站用戶if(!empty($r)) {//讀取本站用戶信息,執行登錄操作$password = $r['password'];$this->_init_phpsso();$synloginstr = $this->client->ps_member_synlogin($r['phpssouid']);$userid = $r['userid'];$groupid = $r['groupid'];$username = $r['username'];$nickname = empty($r['nickname']) ? $username : $r['nickname'];$this->db->update(array('lastip'=>ip(), 'lastdate'=>SYS_TIME, 'nickname'=>$me['name']), array('userid'=>$userid));if(!$cookietime) $get_cookietime = param::get_cookie('cookietime');$_cookietime = $cookietime ? intval($cookietime) : ($get_cookietime ? $get_cookietime : 0);$cookietime = $_cookietime ? TIME + $_cookietime : 0;$phpcms_auth_key = md5(pc_base::load_config('system', 'auth_key').$this->http_user_agent);$phpcms_auth = sys_auth($userid."\t".$password, 'ENCODE', $phpcms_auth_key);param::set_cookie('auth', $phpcms_auth, $cookietime);param::set_cookie('_userid', $userid, $cookietime);param::set_cookie('_username', $username, $cookietime);param::set_cookie('_groupid', $groupid, $cookietime);param::set_cookie('cookietime', $_cookietime, $cookietime);param::set_cookie('_nickname', $nickname, $cookietime);param::set_cookie('_from', 'snda');$forward = isset($_GET['forward']) && !empty($_GET['forward']) ? $_GET['forward'] : 'index.php?m=member&c=index';showmessage(L('login_success').$synloginstr, $forward);} else { //彈出綁定注冊頁面$_SESSION = array();$_SESSION['connectid'] = $userid;$_SESSION['from'] = 'renren';$connect_username = $username;include template('member', 'connect');}} } else {$o = new OauthSDK(SNDA_AKEY, SNDA_SKEY, SNDA_CALLBACK);$accesstoken = $o->getSystemToken(); $aurl = $o->getAuthorizeURL();include template('member', 'connect_snda');}}?
轉載于:https://www.cnblogs.com/mr-amazing/p/3773034.html
總結
以上是生活随笔為你收集整理的PHPcms 把盛大登陆换成人人网登陆的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中英文字体名字对应表
- 下一篇: Windows Azure HandBo