使用QQ登录商城
Posted -Eric-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用QQ登录商城相关的知识,希望对你有一定的参考价值。
网站必须上线-》注册验证
1. 注册域名-》万网
2 有台服务器-》租服务器【阿里云】【LINUX cente OS 7.0】——》root的密码
3 使用软件远程连接到LINUX服务器【putty】
4 在LINUX下 安装LAMP | lnmp环境
http://www.lnmp.org/ 一键安装
5 ifconfig 查看IP
在注册域名的网站后台把域名绑定到这个阿里云的服务器的IP地址上
echl ------------
6 把代码上传到服务器上【使用FTP软件上传】 【先把代码压缩,上传到服务器上再解压】
7 导入数据库
在Linux上 进入mysql 登录 创建数据库,导入代码
SOURCE /home/wwwroot/www.40.com/data.sql
8 修改程序的配置文件
9 访问域名
在Linux下 执行指令为 Runtime 分配可写的权限
chmod -R 777 ./www.40.com/
chmod -R 777 ./Application/Runtime/
-----------------------------------------------------------
在qq网站注册进去 要在页头加《meta标签》这个代码才能通过
填写回调地址
下载开发代码
SDK文档
解压放到根目录,上传到服务器
修改QQ配置文件 comm/config.php
放入 key id 修改回调地址
修改登录页面的QQ图标按钮,当点击时弹出登录的窗口【直接复制DEMO中的代码】
修改登录页面
<div class="coagent mt15">
<dl>
<dt>使用合作网站登录商城:</dt>
<dd class="qq"><a onclick=‘window.open("/qqlogin/oauth/qq_login.php","TencentLogin","width=450,height=320,menubar=0,scrollbars=1, resizable=1,status=1,titlebar=0,toolbar=0,location=1");‘ href="javascript:void(0);"><span></span>QQ</a></dd>
<dd class="weibo"><a href=""><span></span>新浪微博</a></dd>
<dd class="yi"><a href=""><span></span>网易</a></dd>
<dd class="renren"><a href=""><span></span>人人</a></dd>
<dd class="qihu"><a href=""><span></span>奇虎360</a></dd>
<dd class=""><a href=""><span></span>百度</a></dd>
<dd class="douban"><a href=""><span></span>豆瓣</a></dd>
</dl>
</div>
当点击头像就会QQ登录,成功之后就会跳到前面配置的回调地址中
调到qq callback文件之后调用了两个函数
调用了两个QQ的接口,为了获取当前登陆的QQ的openID【加密之后的QQ号】,然后把openid 保存到session 中
接下来需要把OPENID和我们网站中的一个账号关联起来
关闭QQ登陆小窗口,修改回调文件登录之后调到我们的网站中
echo "<script>opener.location.href=‘/index.php/Home/Member/qqlogin‘;window.close();</script>";
打开会员控制器,建一个QQ登录方法
修改会员表 添加一个ID
alter table p40_member add openid char(32) not null default ‘‘ comment ‘openid‘;
/************会员表***********/
drop table if exists p40_member;
create table p40_member
(
id mediumint unsigned not null auto_increment comment ‘Id‘,
username varchar(30) not null comment ‘用户名‘,
password char(32) not null comment ‘密码‘,
face varchar(150) not null default ‘‘ comment ‘头像‘,
jifen mediumint unsigned not null default ‘0‘ comment‘积分‘,
openid char(32) not null default ‘‘ comment ‘openid‘,
primary key (id)
)engine=InnoDB default charset=utf8 comment ‘会员‘;
------------------------------------
qqlogin中的代码
A 修改原会员模型把登录改成可以不用密码登录【只有在QQ登录时使用 这个功能】
public function qqlogin()
{
/*****先查询这个QQ对应的账号*****/
$memberModel=D(‘Admin/Member‘);
$member=$memberModel->field(‘username‘)->where(array(
‘openid‘ =>$_SESSION[‘openid‘],
))->find();
//如果有这个关联账号直接让这个账号登陆
if($member)
{
$memberModel->$member[‘username‘];
if($memberModel->login(FALSE))
{
$returnUrl=U(‘/‘); //默认地址
//如果session 有就跳到这个地址
$ru=session(‘returnUrl‘);
if($ru)
{
session(‘returnUrl‘,null);
$returnUrl=$ru;
}
$this->success(‘登录成功!‘, $returnUrl);
exit;
}
}
else
{
$this->error($memberModel->getError());
}
}
---------------------------
else
{
//如果QQ号还没有关联账号那么就引导会员绑定一个账号;
redirect(U(‘login‘));
}
修改登录页面
<!-- 登录主体部分start -->
<div class="login w990 bc mt10">
<div class="login_hd">
<h2>
<?php if(isset($_SESSION[‘openid‘])): ?>
请你用现有的账号登录完成QQ绑定
<?php else: ?>
用户登录
<?php endif; ?>
</h2>
<b></b>
</div>
修改登录的代码
//如果是QQ登录就绑定openid
if(isset($_SESSION[‘openid‘]))
{
$this->where(array(
‘id‘=>$user[‘id‘]
))->setField(‘openid‘,$_SESSION[‘openid‘]);
unset($_SESSION[‘openid‘]);
}
如果会员还没有账号就先注册,所以修改注册的页面
<!-- 登录主体部分start -->
<div class="login w990 bc mt10 regist">
<div class="login_hd">
<h2>
<?php if(isset($_SESSION[‘openid‘])): ?>
如果你还没有账号i请先注册一个账号然后完成QQ绑定
<?php else: ?>
用户注册
<?php endif; ?>
</h2>
修改会员模型;
protected function _before_insert(&$data, $option)
{
$data[‘password‘] = md5($data[‘password‘]);
//如果是QQ登录就绑定openid
if(isset($_SESSION[‘openid‘]))
{
$data[‘openid‘]=$_SESSION[‘openid‘];
unset($_SESSION[‘openid‘]);
}
}
以上是关于使用QQ登录商城的主要内容,如果未能解决你的问题,请参考以下文章