php - 使用自定义服务器的 Moodle 中的 SSO
问题描述
有一些学校要我为他们创建moodle网站,他们需要以下逻辑
1-学生在他们的系统中注册
2-登录应该在他们的系统中完成
3-当我打开moodle的登录屏幕时,我应该有登录按钮,当学生按下它时,我应该将他重定向到外部登录页面
4-学生将输入用户名和密码,然后按登录
5-系统应该返回代码并将学生重定向到我系统中返回代码的页面
6-然后我系统中的这个页面应该使用此代码发出另一个 API 请求,以获取访问令牌和学生数据,例如(电子邮件、姓名等)
7-获得学生数据后,我应该在我的数据库中搜索它
8-如果已经找到我应该让用户静默登录我的系统并将学生重定向到他的仪表板
9-如果没有找到,我应该在系统中创建学生,然后让学生静默登录并将他重定向到他的仪表板
10-以后每次学生打开moodle时,我都应该验证令牌是否仍然有效或已过期,如果已过期,我应该强迫学生再次去#3
谁能建议如何在moodle中实现这种逻辑?
我已经在moodle中启用了restful web服务,我找到了如何使用api方法在moodle中创建用户,但是我找不到登录或注销
请帮忙
解决方案
Moodle 中已经有很多身份验证插件
https://docs.moodle.org/38/en/Authentication
包括 OAuth2
https://docs.moodle.org/38/en/OAuth_2_authentication
但我们倾向于使用 SAML2,它是 Catalyst 提供的可靠插件,可与大多数 SSO 系统配合使用。
推荐阅读
- flutter - 如何检测 SliverAppBar 被固定
- python - Openpyxl - 在 iter_rows'ing 时读取相交列
- vba - 如何从 VBA 调用 ScCreateConversationIndex?
- arrays - C中的 int* p 和 (int*) p 有什么区别
- javascript - 使用 javascript 删除 li 元素的 ul 类
- c# - 如何在 Xamarin Android 中的 UserInterface 线程上实现 Timer Elapsed Event
- java - 从字符串中删除连续的重复字符
- python - 如何使用 BeautifulSoup 在 span h5 a href 链接中提取标题
- excel - 对应单元格的Excel循环
- firebase - Flutter:方法[]在null上被调用