ECShop_V2.7.3_UTF8 QQ互联 OAuth 2.0 对接 QQ登陆 用QQ登陆ECSHOP

已经在ECShop_V2.7.3_UTF8测试,可以登陆。
一、把qq.php放置站点根目录下,
二、在登陆页面添加QQ登陆图标
qq.php 程序源码:
<?php
/****
*   QQ互联 OAuth 2.0
*   作者:半条虫(466814195)
*   日期:2014/4/16
*   发行:EtSoftWare
*   网址:
http://connect.qq.com/
*/
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
include_once(ROOT_PATH . 'includes/lib_transaction.php');
include_once(ROOT_PATH . 'includes/lib_passport.php');
require_once('OAuth/QQ.class.php');
$conf=array(
'app_id'  => '10105**22',/*应用的唯一标识*/
'app_key'  => 'fbebb333a8e5e****8aea364664615',/*appid对应的密钥*/
);
$qOAuth = OAuth\QQOAuth::getInstance($conf);
/*
<remark>检测用户是否存在</remark>
*/
function check_user($username){
$sql = "SELECT user_id FROM " . $GLOBALS['ecs']->table("users"). " WHERE user_name='$username'";
$row = $GLOBALS['db']->getRow($sql);
if (!empty($row)){ return true; }else{return false;}
}
/*
<remark>注册用户</remark>
*/
function qq_register($qOAuth){
$userInfo = $qOAuth->get_user_info();
$userInfo = json_decode($userInfo);
if($userInfo->ret!=0){
exit("登录发生错误".$userInfo->msg);
} else {
   $username='qq'.$qOAuth->openId;
   $usernickname =$userInfo->nickname;
   $userico =$userInfo->figureurl_qq_1;
   $password=time();//随便弄个密码
   $email=$qOAuth->openId.'@qq.com';//没有返回邮箱
   $back_act ="user.php";
   /* 检测用户名 */
   if (check_user($username)!==false){//账号存在直接完成登录
$GLOBALS['user']->set_session($username);
$GLOBALS['user']->set_cookie($username);
$GLOBALS['user']->set_session($usernickname);
$GLOBALS['user']->set_cookie($usernickname);
$GLOBALS['user']->set_session($userico);
$GLOBALS['user']->set_cookie($userico);
header("Location: user.php\n");
exit;
   }else{//账号不存在就完成注册并自动登录
$reg_date = time();
$password =md5($password);
$GLOBALS['db']->query('INSERT INTO ' . $GLOBALS['ecs']->table("users") . "(`email`, `user_name`,`user_nickname`,`user_ico`, `password`, `reg_time`, `last_login`, `last_ip`) VALUES ('$email', '$username','$usernickname','$userico', '$password', '$reg_date', '$reg_date', '$ip')");//账号不存在 就写入数据库 并登陆
$GLOBALS['user']->set_session($username);
$GLOBALS['user']->set_cookie($username);
header("Location: user.php\n");
exit;
   }
   //$userInfo->figureurl'
}
}
qq_register($qOAuth);
?>
为了符合QQ OAuth2.0做出的要求通过审核,可以对相关信息做修改
添加字段
ALTER TABLE `sp_users` ADD `user_nickname` VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `user_name`, ADD `user_ico` VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `user_nickname`;
更新数据
UPDATE `sp_users` SET `user_nickname`=`user_name`
includes\modules\intergrates\intergrate.php 607
$sql = "SELECT user_id,user_nickname,user_ico,password, email FROM " . $GLOBALS['ecs']->table('users') . " WHERE user_name='$username' LIMIT 1";
includes\modules\intergrates\intergrate.php 614
$_SESSION['user_name'] = $username;
$_SESSION['user_nickname'] = $row['user_nickname'];
$_SESSION['user_ico'] = $row['user_ico'];
includes\lib_main.php 121
$sql  = 'SELECT u.user_id,u.user_nickname,u.user_ico,u.email, u.user_name, u.user_money, u.pay_points'.
includes\lib_main.php 127
$user['username']    = $user['user_name'];
$user['usernickname']    = $user['user_nickname'];

$user['userico']    = $user['user_ico']; 


半条虫(466814195) ECShop_V2.7.3_UTF8 QQ互联 OAuth 2.0 对接 QQ登陆 用QQ登陆ECSHOP

半条虫(466814195) ECShop_V2.7.3_UTF8 QQ互联 OAuth 2.0 对接 QQ登陆 用QQ登陆ECSHOP

半条虫(466814195) ECShop_V2.7.3_UTF8 QQ互联 OAuth 2.0 对接 QQ登陆 用QQ登陆ECSHOP

半条虫(466814195) ECShop_V2.7.3_UTF8 QQ互联 OAuth 2.0 对接 QQ登陆 用QQ登陆ECSHOP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值