无法升级OAuth 2令牌,远程终结点的HTTP状态:{$a}在Moodle 4.2中

xdyibdwo  于 2023-10-15  发布在  其他
关注(0)|答案(2)|浏览(111)

我使用了定制服务:用于SSO的OpenID。我配置了端点,用户字段Map和其他东西。但是当我尝试使用用户名和密码登录时,它返回上面提到的错误。我看了moodle的文档,但没有得到结果。错误是:无法升级OAuth 2令牌。远程终结点的HTTP状态:{$a}
使用Moodle Version 4.2
我尝试从OAuth2 MoodleOAuth Services、单点签核获取解决方案
打开调试模式后的跟踪

Error: mdb->get_record() found more than one record!
    line 1691 of /lib/dml/moodle_database.php: call to debugging()
    line 1651 of /lib/dml/moodle_database.php: call to moodle_database->get_record_sql()
    line 1630 of /lib/dml/moodle_database.php: call to moodle_database->get_record_select()
    line 582 of /lib/datalib.php: call to moodle_database->get_record()
    line 794 of /lib/setup.php: call to get_site()
    line 41 of /config.php: call to require_once()
    line 31 of /admin/oauth2callback.php: call to require_once()

请在下面的链接中找到错误的屏幕截图:
error regarding oauth

kg7wmglp

kg7wmglp1#

罗素的回答似乎解决了重复课程的问题-你的问题中的跟踪显示的问题。所以这部分很好,现在可以忽略了。
截图(注意,这是你后来添加的)报告了一个连接问题,具体来说,就是你的Moodle阻止了对URL的访问。这由阻止的主机列表设置控制

e5njpo68

e5njpo682#

你能打开调试并将跟踪复制粘贴到问题中吗
编辑config.php并插入以下内容

// Force a debugging mode regardless the settings in the site administration
@error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS!
@ini_set('display_errors', '1');    // NOT FOR PRODUCTION SERVERS!
$CFG->debug = (E_ALL | E_STRICT);   // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS!
$CFG->debugdisplay = 1;             // NOT FOR PRODUCTION SERVERS!

编辑:
您是否正在使用Moodle 4.2?
这条线

line 582 of /lib/datalib.php: call to moodle_database->get_record()

有这个代码

if ($course = $DB->get_record('course', array('category'=>0))) {

看起来您有多个类别为0的课程-只有站点课程应该使用该类别
检查课程表,并将非网站课程的类别更改为其他类别-网站课程ID可能为1,因此将其保留为0

SELECT *
FROM mdl_course
WHERE category = 0

相关问题