老杨原创-ecshop腾讯qq、新浪、支付宝、facebook快捷登录oauth2.0功能插件整合[11.18更新]
2015.11.18日有更新,增加安全验证,另外因QQ互联机制变更,更改qq登陆机制。
下载链接:http://pan.baidu.com/s/1pJvOvAr (这是最新的下载地址)
这个功能插件最原始是由路灯发布的,我最初也是使用的这个,后来qq等陆续发布oauth2.0接口更新,导致原插件不可再用。
老杨重写这个插件的所有结构,仅保留后台设置的部分。
另外,推出ecshop的facebook快捷登陆(大陆不可用,需翻墙测试,适合做外贸的站)www.lyecs.com 老杨ecshop开发中心
每一个快捷登陆后台都有提供申请地址,请按各官方提供的申请流程操作,请勿再联系老杨说插件不可用,老杨所有客户都是使用此插件,请多再看一下哪里设置了出问题!
强调,每一次后台更改设置后,不要忘记点一下重新生成插件按钮哦。
报错情况可能:
1、后台设置更改后没有点重新生成插件按钮
2、互联的设置错误,没有填写回调地址等(填首页)
3、id或secret错误!
4、总之不是插件的错误!
5、老杨版深度二次开发框架lyecshop v1.1.3已高度整合此功能!
……
总之的总之,关于此插件,老杨不再提供技术咨询(有偿的也不提供),所以多自己测试,调试,一定会成功的!
之前的下载文件少了一个语言文件,已更新
对于在登陆页面登陆后,不跳转的,只需要在user.php找到:
elseif ($action == 'login')
{
添加:
if($user_id){
ecs_header('Location: index.php');
}
即可
初始化方法:
点第三方登陆插件:
右上角有这个按钮,操作后都点一次。
效果如图:

安装方法:
1、先下载文档,上传覆盖文件(注意备份)
下载链接:http://pan.baidu.com/s/1pJvOvAr (这是最新的下载地址)
2、手动修改以下地方:
(1)user.php文件
找到以下代码:
array('login','act_login'
在其后面插入:
,'oauth_login','act_oauth_login'
效果如:array('login','act_login','oauth_login','act_oauth_login'
(2)找到以下代码:
/* 处理会员的登录 */
elseif ($action == 'act_login')
{
//在其上面插入以下代码:
elseif($action == 'oauth_login')
{
$type = empty($_REQUEST['type']) ? '' : $_REQUEST['type'];
$type_arr=array('qq','sina','alipay','taobao','weixin');
if(!in_array($type, $type_arr)){
die('错误!');
}
include_once(ROOT_PATH . 'includes/login/functions.php');
$url=get_oauth_url($type);
if($url){
echo("
");
}else{
die('错误!');
}
}
elseif($action == 'act_oauth_login')
{
include_once(ROOT_PATH . 'includes/login/functions.php');
$type = empty($_REQUEST['type']) ? '' : $_REQUEST['type'];
$type_arr=array('qq','sina','alipay','taobao','weixin');
if(!in_array($type, $type_arr)){
die('错误!');
}
$info=get_oauth_info($type);
if(!empty($info['error']))
{
show_message('登录出错,错误码'.$info['error'], $_CFG['url'] , 'error' , false);
}
if(!$info['user_id'] || !$info['user_name']){
show_message('登录出错,数据异常!', $_CFG['url'] , '' , false);
}
$info_user_id = $type .'_'.$info['user_id'];
$info['user_name'] = str_replace("'" , "" , $info['user_name']);
$sql = 'SELECT user_name,password,aite_id FROM '.$ecs->table('users')." WHERE aite_id = '$info_user_id' OR aite_id='$info[user_id]'";
$user_info = $db->getRow($sql);
//die(print_r($user_info));
if(!$user_info) // 没有当前数据 www.lyecs.com
{
if($user->check_user($info['user_name'])) // 重名处理
{
$info['user_name'] = $info['user_name'].'_'.(rand( 0 , 100));
}
$password = $user->compile_password(array('password'=>$info['user_id']));
$sql = 'INSERT INTO '.$ecs->table('users').'(user_name , password, aite_id , sex , reg_time , user_rank , is_validated) VALUES '.
"('$info[user_name]' , '$password' , '$info_user_id' , '$info[sex]' , '".gmtime()."' , '0' , '1')" ;
$db->query($sql);
}
else
{
$sql = '';
if($info['user_id'] == $user_info['aite_id']) // 为兼容之前的版本写的 // 直接使用 可以 删除 此段
{
$sql .= 'aite_id = \''.$info_user_id.'\' ,';
}
if($info['user_name'] != $user_info['user_name'])
{
$sql .= " user_name = '$info[user_name]' ,";
}
if($info['sex'] != $user_info['sex'])
{
$sql .= " sex = $info[sex] ,";
}
if($sql)
{
$sql = substr($sql , 0 ,strlen($sql) -1);
$sql = 'UPDATE '.$ecs->table('users').' SET '. $sql ." WHERE aite_id= '$info[user_id]'";
$db->query($sql);
}
}
$user->set_session($info['user_name']);
$user->set_cookie($info['user_name']);
update_user_info();
recalculate_price();
die(' ');
}
2、找到admin/templates/top.html
找到
{foreach from=$nav_list item=item key=key}
<li><a href="{$key}" target="main-frame">{$item}</a><li>
{/foreach}
<li><a href="website.php?act=list" target="main-frame">第三方登陆插件</a><li>
3、找到themes/模板目录/user_passport.dwt
找到:
<input type="submit" name="submit" value="" class="us_Submit" />
添加:
<ul class="other-form">
<li><h5>使用第三方帐号登录</h5></li>
<li class="other-login">
<a target="_self" href="javascript:;" onclick="login('user.php?act=oauth_login&type=qq&open=1')">
<img style=" margin-top:3px;" src="/lyecs_style/images/login/lg_cft.gif"></a>
<a href="javascript:;" onclick="login('user.php?act=oauth_login&type=alipay&open=1')">
<img style=" margin-top:3px;" src="/lyecs_style/images/login/lg_alipay.gif"></a>
<a href="javascript:;" onclick="login('user.php?act=oauth_login&type=sina&open=1')">
<img style=" margin-top:3px;" src="/lyecs_style/images/login/lg_sina.gif"></a>
<li>
</ul>
<script type="text/javascript">
function login(url , width , height)
{
widthwidth = width == null ? 490 : width;
heightheight = height == null ? 320 : height;
var iTop = (window.screen.availHeight-30-height)/2;
var iLeft = (window.screen.availWidth-10-width)/2;
childWindow = window.open(url,"TencentLogin","width="+width+",height="+height+",top="+iTop+",left="+iLeft+",menubar=0,scrollbars=1, resizable=1,status=1,titlebar=0,toolbar=0,location=1");
}
</script>
找到
<input type="submit" name="Submit" class="bnt_blue_1" value="{$lang.forthwith_register}" />
<input name="act" type="hidden" value="signup" />
在其上面添加3中的代码。ecshop模板
样式大家自行修改一下!
5、关于需要facebook的,
admin/template/website.htm
在
<tr align="center">
<td>支付宝登陆</td>
<td align="left">申请链接:<a href="https://b.alipay.com/order/productDetail.htm?productId=2013052704023441" target="_blank">https://b.alipay.com/order/productDetail.htm?productId=2013052704023441</a></td>
<td>
<a href="website.php?act=view&type=alipay">{$lang.view}</a>
</td>
</tr>
后面添加一段:
<tr align="center">
<td>facebook登陆td>
<td align="left">申请链接:<a href="https://developers.facebook.com/apps?ref=mb" target="_blank">https://developers.facebook.com/apps?ref=mb</a>td>
<td>
<a href="website.php?act=view&type=facebook">{$lang.view}</a>
td>
tr>
所有前台按钮在下面代码下面:
<a href="javascript:;" onclick="login('user.php?act=oauth_login&type=sina&open=1')">
<img style=" margin-top:3px;" src="/lyecs_style/images/login/lg_sina.gif"></a>
加
<a target="_self" href="javascript:;" onclick="login('user.php?act=oauth_login&type=facebook&open=1')">
<img style=" margin-top:3px;" src="/lyecs_style/images/login/lg_facebook.gif"></a>
LYECS LYECS电商系统 老杨商城系统 ECSHOP二次开发