我在使用 OpenId 与 keycloak 进行 Moodle 集成时遇到以下错误
未知状态。
有关此错误的更多信息
调试信息:
错误代码:errorauthunknownstate
堆栈跟踪:
line 287 of /auth/oidc/classes/loginflow/authcode.php: moodle_exception thrown
line 133 of /auth/oidc/classes/loginflow/authcode.php: call to auth_oidc\loginflow\authcode->handleauthresponse()
line 168 of /auth/oidc/auth.php: call to auth_oidc\loginflow\authcode->handleredirect()
line 31 of /auth/oidc/index.php: call to auth_plugin_oidc->handleredirect()
输出缓冲区:数组([状态] => rhcy8XXhwoOtCkZ [代码] => 5b74206b-8bce-474f-bfbb-b82193a61c5a.80b7565c-17e5-4725-8204-c9e9cf826fcf.7474b906-61ec-4d54-a 984-acf4672bcde3 [错误描述] = > )
我在尝试解决此错误时得到了这个。
在授权流程中,您有两个步骤。首先,您会收到一个授权码,然后使用该授权码来获取访问令牌。当您在重定向 URL 处收到响应时,必须有一种方法来验证该响应是否针对您发送的请求。状态值通过绑定请求和响应来解决这个问题。客户端应该验证响应。
在我的例子中,“状态”保存在 oidcclient.php 的数据库中。但从 /auth/oidc/classes/loginflow/authcode.php 文件中我得到了不同的“状态”值。
可能是什么问题。任何人都可以在这方面提供帮助吗?
提前致谢
我首先会联系该特定插件的开发人员,并确认他们当前是否支持与 keycloak 的集成。这不是附带的插件。相关的第 3 方插件页面可以在这里找到:https://moodle.org/plugins/auth_oidc
上面的页面上还有一个 github 存储库的链接,可以在其中报告问题和提出问题:https://github.com/Microsoft/o365-moodle/issues。可能是一个很好的起点。