PHPcms 把盛大登陆换成人人网登陆

首先要确保你的 phpcms是比较新的版本, v9.3以后的吧

这里说明一个函数 rawurlencode() 本函数将字符串编码成 URL
的字符串专用格式,特殊的字符会转换成百分比符号后面加上二个十六位数字的格式。例如,空格就会变成 %20。

修改member/class/OauthSDK.class.php

?





1

2

3

4

5

6

7

8

9

10

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

    );

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

//Get accesstoken

    public
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 中的代码

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

/**

     * 盛大通行证登陆  自己修改为人人登陆接口

     */

    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‘);

        }

        

    }

时间: 2024-07-29 13:28:55

PHPcms 把盛大登陆换成人人网登陆的相关文章

手把手教你免费把网站IP换成1.1.1.1/1.0.0.1

近日,Cloudflare官方发文,与APNIC官方合作打算用IP1.1.1.1推出速度更快.私密性更强的DNS Cloudflare 运行全球规模最大.速度最快的网络之一. APNIC 是一个非营利组织,管理着亚太和大洋洲地区的 IP 地址分配. Cloudflare 有网络,APNIC 有 IP 地址(1.1.1.1). 一个共同的使命激发了我们,那就是建立一个更好的互联网.如欲详细了解我们的宗旨, 请访问我们各自的博文:Cloudflare 博客 /APNIC 博客. 经过测试,这个IP也

delphi 怎么将一个文件流转换成字符串(String到流,String到文件,相互转化)

//from   http://kingron.myetang.com/zsfunc0d.htm (*//   标题:充分利用pascal字符串类型   说明:和PChar不同,string可以保存#0字符在其中;示例文件.内存流字符串之间转换   设计:Zswang   日期:2002-01-25   支持:[email protected]   //*) ///////Begin   Source   function   StringToFile(mString:   string;  

将 Photoshop CC 2015.5 英文界面换成中文, 英文与中文界面互换

注:转载或引用请注明出处 在英文的win server 2012 r2 上安装PS CC 2015.5 时,安装程序自动按成了英文版的PS,那么如何将英文换成中文呢? 网上大多将的是将中文换成英文,经过尝试后,发现了将英文换成中文的方法如下: 0. 先关闭PS 1. 下载zh_CN的语言包,我共享如下: http://pan.baidu.com/s/1pK9n4U3 注意,此处的语言包对应PS版本为: 2. 在将安装路径中:Adobe\Adobe Photoshop CC 2015.5\AMT\

php 把数字1-1亿换成汉字表述,例如 150 转成 一百五十

直接上实例 写到 千亿上了. /** * @author  ja颂  * 把数字1-1亿换成汉字表述,如:123->一百二十三 * @param [num] $num [数字] * @return [string] [string] */function numToWord($num){ $chiNum = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九'); $chiUni = array('','十', '百', '千', '万',

终于忍不了xfce的界面,换成kde吧,超极酷!相信每个人都会爱上它的!

开始之前先BB一段无关紧要的缘由. 之前因为自己的笔记本和实验室的台式电脑配置都奇差,所以装的都是xfce,资源占用比较小嘛(就这样都经常卡)... 如今鸟枪换成机关枪,新电脑是G3258的CPU,低端之王吧,用来跑Linux和写程序,顺便日常上网看电影使用还是够的.主要看中了它功率低,还能超频,又是奔腾20周年纪念款,算是值得吧. 昨天给新电脑装完系统,还是用的xfce+lightdm的组合,本想奢侈一把,装个cairo-dock,比xfce自带的panel要好看那么一丢丢.结果发现cairo

oracle 的 sqldeveloper换成英文界面

在软件D:\sqldeveloper\ide\bin目录下找到ide.conf添加 AddVMOption -Duser.language=en AddVMOption -Duser.country=US oracle 的 sqldeveloper换成英文界面,布布扣,bubuko.com

流转换成字符串

public class StreamUtil { /** * 流转换成字符串 * @param is 流对象 * @return 流转换成的字符串 返回null代表异常 */ public static String streamToString(InputStream is) { //1,在读取的过程中,将读取的内容存储值缓存中,然后一次性的转换成字符串返回 ByteArrayOutputStream bos = new ByteArrayOutputStream(); //2,读流操作,读

云计算之路-阿里云上:负载均衡从七层换成四层后的意外发现

阿里云的负载均衡产品叫SLB,七层负载均衡用的是LVS+Tengine,四层负载均衡用的是LVS. 昨天七层SLB出现了波动,我们后来改用了四层SLB. 使用后意外地发现,用户请求的响应内容TCP出包走的是云服务器的公网网卡. 之前用七层SLB时流量走的都是内网网卡,再加上RDS.Memcached也走的是内网网卡,于是网络负载都集中在一块内网网卡,内网网卡IO成为了瓶颈.而公网网卡却闲置着,我们之前也曾想过要是将一部分网络负载让公网网卡分担该多好啊. 我们用物理服务器的时候,会把Web服务器上

把流转换成字符串

把流转换成字符串 public static String convertStreamToString(InputStream is) { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } String