我正在开发一个LTI小部件,然后需要对API进行身份验证才能获得额外的信息。
我正在努力弄清楚如何处理API用户身份验证,并重定向回保留LTI信息。
返回的请求字符串如下:
Array ( [x_a] => **********************
[x_b] => **********************
[x_c] => *********************************** )问题是,我将PHP LTI脚本设置为仅在满足以下条件时才加载:
if(!isset($_REQUEST['lis_outcome_service_url'])
|| !isset($_REQUEST['lis_result_sourcedid'])
|| !isset($_REQUEST['oauth_consumer_key'])
)x_a是用户id,x_b是用户密钥。什么是x_c?
非常感谢您的任何建议!
发布于 2015-03-23 21:47:24
我的答案是指detailed topic on the IDKey Auth scheme for the Valence dev platform。
这里提到的身份验证序列的一部分相当于序列的第二阶段,在用户成功地对自己进行身份验证之后(当您像这样链接在LTI启动的背面时,您就知道驱动用户代理的用户已经进行了身份验证,因为他们本来就不能进行LTI启动),并且服务将长期的用户令牌发送回您的服务。
请参阅IDKey身份验证文档主题中名为Using a third-party web application的部分中的顺序注释中的步骤5到7:
web x_a={tokenID} -与长期令牌关联的唯一ID:
应用程序可以提供此ID,以便服务可以精确定位web应用程序/用户上下文。
x_b={tokenKey} -与长期令牌关联的密钥: web应用程序可以将其用作生成会话签名的密钥。
应用程序令牌身份签名:服务将用户ID (tokenID)和用户密钥(tokenKey)连接(并用&符号分隔)作为基本字符串,并使用x_c={tokenSig}密钥作为密钥。
请注意,您需要使用您的Valence Application ID/密钥对来验证x_c中包含的令牌签名。
远程插件。注意,Brightspace Remote Plugin service是一个围绕LTI/外部学习工具的方便的服务包装器。关于远程插件的文档包含一个相当详细的演练/示例,其中展示了一个简单的Python web服务工具提供程序实现,该实现接收Brightspace LTI启动,并可以转过身来使用Valence API调用来获取更多信息。您可能会发现仔细研究一下这一点很有用。
https://stackoverflow.com/questions/28752233
复制相似问题