我使用xapiwrapper.min.js和类似的文件将语句发送到LRS。我自己的包含javascript的文件叫做init.js,如下所示。 Init.js是从我的其他主要html5文件中引用的。当您在我的init.js文件中进一步查看时,您将看到ADL LRS的一些凭据信息。有没有办法阻止用户查看?
init.js文件
<!--This happens when the user clicks the Submit button.-->
$("#myButton").click(function(){
//creating a couple of local variables
var name = $("#nameID").val();
var email = $("#emailID").val();
if(name=='') {
alert("Please enter a name");
myForm.name.focus();
return (false);
}
if(email=='') {
alert("Please enter an email");
myForm.name.focus();
return (false);
}
//creating global variables
setGlobal(email, name);
//move to page 2
document.location.replace("tableOfContents.html");
});
//Setting some global variables in case we need them later.
function setGlobal(actEmail, actName) {
// Save the name in localStorage.
localStorage.setItem('name', actName);
// Save the email in localStorage.
localStorage.setItem('email', actEmail);
}
<!--When the user clicks the feedback link-->
$("#feedback").click(function(){
window.open('mailto:internaltraining@syniverse.com?subject=Feedback on MS Office 365 tutorials');
});
<!--When the user clicks the logout link-->
$("#logout").click(function(){
localStorage.removeItem("name");
localStorage.removeItem("email");
document.location.replace("index.html");
});
// Auth for the ADL LRS
var conf = {
"endpoint" : "https://lrs.adlnet.gov/xapi/",
"user": "xapi-tools",
"password": "xapi-tools",
"auth": "xapi-tools"
};
$("#myModal").on('hidden.bs.modal', function (e) {
$("#myModal iframe").attr("src", $("#myModal iframe").attr("src"));
});
答案 0 :(得分:2)
实际上,没有。
解决此问题的唯一真正方法是在LRS中使用每个用户凭据,并让用户“知道”他们自己的凭据,以便他们可以在首次与LRS通信时输入它们。
存在各种替代方案以在不同程度上改善这种情况:
1)使用OAuth可以使上述建议“更容易”,因为OAuth更容易实现。这需要很好地理解OAuth的工作原理以及实现它的LRS,并且我不知道ADL xAPI包装器是否支持它。
2)使用与LRS的服务器端通信,这可以通过代理设置完成,以便服务器可以进行身份验证,然后调整对LRS的调用凭据或使用转换为xAPI调用的自定义调用。在代理案例中,中间服务器仍然对最终用户的凭证进行适当的身份验证非常重要。
3)例如在启动方案中使用可过期的有限凭证,因此每次启动都会获得一个新的凭证,该凭证对LRS的访问权限有限。这就是最初的锡罐启动指南的工作原理。 (凭证在客户端仍然可用。)
4)使用一次性检索可过期的有限凭证,例如在启动方案中,例如如何指定cmi5。在这种情况下,会话使用获取URL启动,该获取URL只能访问一次,并将凭据提供给具有受限功能的客户端。 (凭证在客户端仍然可用。)
5)自定义LRS以允许其他形式的身份验证。
除了#2之外,客户端总是拥有LRS的凭证。