iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >phpcms V9实现qq登陆oauth2.0的方法
  • 176
分享到

phpcms V9实现qq登陆oauth2.0的方法

phpcmsqq登陆oauth2.0 2022-06-12 01:06:23 176人浏览 八月长安
摘要

PHPcmsV9使用的QQ登陆依然是OAuth1.0,但现在腾讯已经不审核使用OAuth1.0的网站了。这对于使用pc的站长来讲是一个无比巨大的坑。经过对phpcms论坛的一位同学做的插件进行修改,现在完美实现QQ登陆,

PHPcmsV9使用的QQ登陆依然是OAuth1.0,但现在腾讯已经不审核使用OAuth1.0的网站了。这对于使用pc的站长来讲是一个无比巨大的坑。经过对phpcms论坛的一位同学做的插件进行修改,现在完美实现QQ登陆,暂无发现bug。

实现步骤:

①打开\phpcms\modules\member\index.php文件,把下面的代码找个地方塞进去(可以直接在pc默认的QQ登陆下面)。


复制代码代码如下:

//QQ登陆oAuth2.0

ublic function 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();

if(!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'));

if(!emptyempty($r)){

//QQ已存在于数据库,则直接转向登陆操作

$passWord=$r['password'];

$this->_init_phpsso();

$synloginstr=$this->client->ps_member_synlogin($r['phpssouid']);

$userid=$r['userid'];

$groupid=$r['groupid'];

$username=$r['username'];

$nickname=emptyempty($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);

$forward=isset($_GET['forward'])&&!emptyempty($_GET['forward'])?$_GET['forward']:'index.php?m=member&c=index';

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'){//转编码</p> <p>$connect_username=iconv('utf-8',CHARSET,$user['nickname']);

}

includetemplate('member','connect');

}}}

}

②把附件的qqOAuth2.class.php文件放在 \phpcms\modules\member\classes\ 文件夹里。

③在后台找到connect设置,把QQ号码登陆的回调地址改成https://www.jb51.net/index.php?m=member&c=index&a=public_qq_login2 (把我的域名换成你自己的)

④填好App ID和App key,然后更新缓存

⑤登陆phpmyadmin,找到v9_member这张表的connectid字段(或者自定义的字段),把类型改成“char(255)”,因为phpcms默认是15位的。所以我们直接彻底修改成255位,这个不管是腾讯的其它第三方网站帐号(例如淘宝、支付宝、百度、360等其它第三方帐号),都可以完成数据绑定

--结束END--

本文标题: phpcms V9实现qq登陆oauth2.0的方法

本文链接: https://www.lsjlt.com/news/31809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • phpcms如何实现微信登陆
    本篇内容介绍了“phpcms如何实现微信登陆”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-03-09
    phpcms
  • java接入qq登陆的方法是什么
    要实现Java接入QQ登录,可以使用QQ互联开放平台提供的OAuth2.0方式进行认证和授权。以下是具体的步骤:1. 注册成为QQ互...
    99+
    2023-08-22
    java
  • phpcms v9在模版里用php中 get传值的方法传值
    phpcms v9是一款常用的内容管理系统,它可以轻松地创建和管理动态发布的内容。在使用phpcms v9时,如果我们需要在模板里使用php代码,同时还需要传递参数,那么我们可以使用get传值的方法。get传值是指在浏览器的地址栏里传递参数...
    99+
    2023-05-24
  • web实现QQ第三方登录
    要实现QQ第三方登录,可以按照以下步骤进行:1. 注册QQ互联开发者账号:前往QQ互联开发者平台(https://connect.q...
    99+
    2023-09-23
    web
  • PhpCms V9调用指定栏目子栏目文章的方法有哪些
    本篇内容介绍了“PhpCms V9调用指定栏目子栏目文章的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • 详解android在mob平台实现qq登陆和分享
    个人感觉mob平台功能还是比较强大的,很多功能都可以通过他们平台来实现。 建议仔细观看每一个步骤,如果一个步骤没处理好,可能就会让你的这个功能无法实现。相信我一定可以成功的。 废话少...
    99+
    2024-04-02
  • php实现登陆后跳转网页的方法
    本篇内容介绍了“php实现登陆后跳转网页的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现登录后跳转网页的方法:1、将当前访问页...
    99+
    2023-06-20
  • 使用Post方法模拟登陆爬取网页的实现方法
    最近弄爬虫,遇到的一个问题就是如何使用post方法模拟登陆爬取网页。下面是极简版的代码:import java.io.BufferedReader;import java.io.InputStreamReader;import java.i...
    99+
    2023-05-31
    java post 模拟登陆
  • SpringBoot集成JWT实现登陆验证的方法详解
    1:首先,我们需要在项目中导入两个依赖: <dependency> <groupId>com.auth0</gr...
    99+
    2024-04-02
  • Ajax实现phpcms点赞功能的示例方法
    这篇文章给大家分享的是有关Ajax实现phpcms点赞功能的示例方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先 是将后台中 模块--->新闻心情--->心情配置  去掉多余的剩一个,...
    99+
    2023-06-08
  • .Net Core实现第三方QQ扫码登录
    目录效果展示:核心实现展示二维码解析扫码结果登录视图登录授权配置Cookie认证策略创建用户登录标识用户退出登录代码开源效果展示: 核心实现 展示二维码 public static...
    99+
    2024-04-02
  • Android中怎么实现第三方QQ登录
    本篇文章给大家分享的是有关Android中怎么实现第三方QQ登录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。第三方登录之QQ代码区public class ...
    99+
    2023-05-30
    android
  • Django之第三方平台QQ授权登录的实现
    目录环境准备创建QQ互联应用创建应用模块定义QQ登录模型类执行迁移QQLoginTool库API使用说明QQ登录扫码页面认证获取openidopenid的判断处理openid是否绑定...
    99+
    2023-05-19
    Django 第三方平台QQ授权登录 Django 授权登录
  • 让两个用户同时远程登陆XP的实现方法
    1. XP系统上需要有两个用户,且两个用户都要有密码。 2. 下载termsrv.dll,要Build2055版本的 https://www.jb51.net/dll/termsrv.dll.html 3. 备份XP机器...
    99+
    2023-06-02
    远程登陆XP 用户 远程登陆 XP 方法
  • HTML5实现QQ登录的示例分析
    这篇文章主要介绍了HTML5实现QQ登录的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。<!DOCTYPE html...
    99+
    2024-04-02
  • Vista登陆密码的破解方法
    Windows Vista系统管理员如果忘记登录密码,难道只能重装吗当然不是,下面介绍两种破解方法希望对大家有所帮助。     请先将Vista安装盘放入光驱,重新启动计算机,在CMOS中进...
    99+
    2023-05-23
    方法 破解 Vista
  • 破解win7登陆密码的方法
    第一步:  由于cmd在系统目录,文件更改首先要获得文件所有权。打开“D:\Windows\system32”(假设Windows 7安装在D盘),右击“arrator.exe&rdq...
    99+
    2023-05-25
    破解win7 登陆密码 win7 方法
  • mysql8更改登陆密码的方法
    这篇文章将为大家详细讲解有关mysql8更改登陆密码的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql8更改登陆密码的方法:1、登录mysql;2、使用“AL...
    99+
    2024-04-02
  • Linux中SSH免密登陆的方法
    这篇文章主要介绍“Linux中SSH免密登陆的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux中SSH免密登陆的方法”文章能帮助大家解决问题。Secure Shell ( SSH )是一...
    99+
    2023-06-27
  • 使用PHPCMS实现微信登录的步骤详解
    使用PHPCMS实现微信登录的步骤详解 随着智能手机的普及和移动互联网的发展,微信已经成为人们日常生活中必不可少的社交工具之一。在网站开发中,实现微信登录功能可以为用户提供更加便捷的注...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作