我正在构建一个基于罐头的LMS。按照这个指南从LMS启动活动,并使用适当的查询参数将活动发送回LRS xAPI端点进行通信。
https://github.com/RusticiSoftware/launch/blob/master/lms_lrs.md
我们目前面临的问题是对传入语句进行身份验证。目前,我们正在欺骗并仅使用会话 cookie,因为活动与 LMS 在同一域上,但是我们希望转移到外部活动。我知道 Tin Can 更喜欢 OAuth 2.0 用于此目的,但我不确定最佳令牌交换流程应该是什么。我最好的猜测是:
1. 用户在 LMS 中点击活动链接。 2. 带有 Tin Can 参数的活动 URL 打开(操作者、终端等)。 3. 活动将用户重定向回 LRS 进行身份验证令牌。 4. LRS 将身份验证令牌和原始的 Tin Can 参数重定向回活动。 5. 活动将身份验证令牌替换为访问令牌。 6. LRS 返回访问令牌给活动。 7. 活动使用访问令牌调用 Tin Can 语句。
然而,前几个步骤似乎是多余的,因为我们已经从 LMS/LRS 来了。是否可以/建议:
- 在 URL 中启动活动时,使用已经存在的身份验证令牌跳过第 5 步。 - 在 URL 中启动活动时,使用已经存在的访问令牌直接跳过第 7 步。
这两种方法都可以减少所需的步骤,但可能会引入安全风险。
你有什么想法?