登录与登陆的用法

登录与登陆的用法,第1张

phpcmsV9实现qq登陆oauth2.0的方法

本文详细介绍了phpcmsV9完成qq登录oauth2.0的方式,有需要的朋友可以参考一下。

phpcmsV9应用的QQ登录仍然是OAuth1.0,但是现在腾讯官方已经停止审批OAuth1.0应用的网址。这对于使用pc的站长来说是一个极其大的坑。在phpcms社区论坛对一个同学做的软件做了修改后,现在我已经完成了QQ登录,没有发现bug。

完成流程:

①打开\phpcms\modules\member\index.php文件,将底部的代码插入到一个区域中(pc默认在QQ集底部即可立即登录)。


复制以下代码:
/QQ登录OAuth2.0
public函数public_QQ_login2(){
$appid=PC_base::load_config('system','QQ_appid')
$appkey=PC_base::load_config('system','QQ_appkey');
$callback=PC_base::load_config('system','QQ_callback');
PC_base::load_app_class('qqoauth2','',0);
$info=newqqOAuth2($appid,$appkey,$callback);
$this->;_session_start();
如果(!isset($_GET['code']){
$info->;redirect_to_login()。
}else{
$code=$_GET['code'];
$_SESSION['OpenID']=$info->;get_OpenID($code);//读取QQopenid值
if(!emptyempty($_SESSION['OpenID']){
$r=$this->;dB->;get_one(array('connectid'=>;$_SESSION['openid'],'from'=>QQ'));
如果(!Empty($r){
/QQ已经存储在数据库查询中,那么会立即改为实际登录 *** 作
$password=$r['password'];
$this->;_init_phpsso();
$synloginstr=$this->;客户端->;PS_member_synlogin($r['phpssouid']);
$userid=$r['userid'];
$groupid=$r['groupid'];
$username=$r['username'];
$nickname=emptyempty($r['nickname'])?$username:$r['昵称'];
$this->;dB->;update(array('lastip'=>;ip(),'lastdate'=>SYS_TIME,'昵称'=>$me['name'])、array('userid'=>;$userid));
如果(!$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);
$forward=isset($_GET['forward'])&;&!emptyempty($_GET['forward'])?$_GET['forward']:'index.php?m=成员&c=索引';
showmessage(L('login_success')。$synloginstr,$forward);
}else{
/在数据库查询中不存在,跳转填写信息网页。页面默认登录名(QQ返回的UTF8号,必要时需要进行格式转换)
$user=$info-->;get_user_info()。
$_SESSION['connectid']=$_SESSION['OpenID'];
$_SESSION['from']='QQ';
if(CHARSET!='utf-8'){//转移号码}
includetemplate('member','connect');
}}}
}

②将附件的qqOAuth2.class.php文件放在文件夹名\phpcms\modules\member\classes\中。

③在后台管理中查找连接设置,将QQ号登录的回拨功能详细地址改为https://www.jb51.net/index.php?.m=member&;c=指数&A=public_qq_login2(把我的网站域名改成你自己的)

④填写AppID和Appkey,然后升级缓存文件。

⑤登录phpmyadmin,查找表v9_member的connectid字段名(或自定义字段名),将类型改为“char(255)”,因为phpcms的默认设置是15位数字。于是大家马上改成了255位,这是腾讯官方第三方网站账号(如淘宝、支付宝钱包、百度搜索、360等第三方账号),可以用于数据信息关联。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/772977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存