moodle三方登录-QQ平台的应用-moodle二次开发

背景

之前做过微信在moodle中登录的应用,实现了扫码登录和微信公众号的静默登录,本文介绍QQ和微博的基本应用,微信需要企业认证,然而QQ和微博只需要个人和域名认证即可,要求没那么高,用来做个人开发足够了。都能实现社交平台的快速登录,本文将重点介绍登录的流程与一些关键代码的实现。

也可以先参考微信扫码登录的这篇文章:Moodle三方登录—微信平台的应用

关键实现:

一、数据库

为了尽可能少的影响moodle系统本身的数据库,我新建了一个数据表,参考资料中的第一个文章有介绍。

新建mdl_user_qq

字段为:id,userid,openid.

(可以设置id或者userid为主键,userid跟mdl_user用户表建立连接)

二、登录流程

首先,要比较熟悉QQ互联的基本登录过程,可以参考资料第二篇文章,但是最新的moodle由于采用的是新的php7,部分php函数进行了升级,而最新的QQ_sdk_php还是2013年的,所以有个函数需要修改。

修改URL.class.php中的get_contents函数为:

'''

public function get_contents($url)

{ $ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($ch, CURLOPT_URL, $url);

$response = curl_exec($ch);

curl_close($ch); //-------请求为空

if(empty($response))

{

        $this->error->showError("50001");

}

return $response;

}

'''

即可解决curl的一个错误提示。

基本登录流程:

QQ扫码——>获取QQ的openid——>从mdl_user_qq表中查找该openid的userid,找到后,调用moodle本身的登录函数,设置Cookie等基本操作。(可以参考开头给的微信登录的链接,函数已经有描述)

关键代码提示:

config.php配置文件,必须包含,在moodle根目录下。

login/lib.php:get_complete_user_data函数和complete_user_login( $user )函数都需要引用这个php文件。

其他的代码就需要自己进行补充说明了,整体难度不是很大吧,但是需要自己对其中的登录流程比较熟悉。

关键代码的实现:

1、login/中添加QQ扫码的按钮:

moodle\theme\boost\templates\core\loginform.mustache, 在大约176行左右添加

一行登录按钮的,可以跟上面的登录一样,将链接文字修改即可。

2、QQ扫码界面:

login/qq/index.php:参考资料2中,默认内容可以是:

<?php

require_once("API/qqConnectAPI.php");

$qc = new QC();

$qc->qq_login();

?>

回调页面设置qq.php:

require_once("API/qqConnectAPI.php");

  $qc = new QC(); $callbak = $qc->qq_callback(); //返回的验证值

$openid = $qc->get_openid(); //qq分配的用户id

$qq = new QC($callbak,$openid);

$result = $qq->get_user_info(); //获取用户信息

//获取到用户openid和基本信息之后,就可以进行结合moodle本身进行登录流程了。

参考资料

1、Moodle系统中 QQ登录模块的开发与应用

2、通过QQ互联实现网站第三方登录

(注意:QQ_sdk_php代码有点老了,需要修改一处代码)

3、微信开放平台开发——网页微信扫码登录(OAuth2.0)

后话

moodle的二次开发资料教少,我也走了很多弯路,从开始安装系统到一些简单的开发,也有一些源码的阅读等,都耗费了很多时间和精力,同时我也有一些折腾的经验。

如果不介意付费服务,欢迎与我联系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343