我正在开发一个基于锡罐的 LMS。我们根据本指南从 LMS 启动活动,并使用适当的查询参数让活动与 LRS xapi 端点进行通信。
https://github.com/RusticiSoftware/launch/blob/master/lms_lrs.md
我们正在努力解决的问题是对传入语句的身份验证。现在我们在作弊,只使用会话 cookie,因为活动与 LMS 位于同一域中,但是我们想转移到外部活动。
我知道 tin-can 为此更喜欢 OAuth 2.0,但是我不确定最好的令牌交换流程应该是什么。我最好的猜测是
- 用户单击 lms 中的活动链接
- 活动网址以锡罐参数(演员、端点等)打开
- 活动将用户重定向回 lrs 以获取身份验证令牌
- lrs 使用身份验证令牌和原始锡罐参数重定向回活动
- 活动将身份验证令牌交换为访问令牌
- lrs 将访问令牌返回给活动
- 活动使 tin can 语句调用使用访问令牌授权
然而,鉴于我们来自 LMS/LRS,前几个步骤似乎是多余的。是否有可能/建议:
- 使用 url 中已经存在的身份验证令牌启动活动,跳到第 5 步
- 使用 url 中已经存在的访问令牌启动活动,直接跳到第 7 步
这些中的任何一个都会减少所需的步骤数量,但可能会带来安全风险。
想法?