如何在与LRS的交互中隐藏或保护身份验证凭据

时间:2017-02-14 16:48:03

标签: javascript tin-can-api

我使用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"));
});

1 个答案:

答案 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的凭证。