0

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

1 回答 1

2

实际上,没有。

解决此问题的唯一真正方法是在 LRS 中使用每个用户的凭据,并让用户“知道”他们自己的凭据,以便他们可以在首次与 LRS 通信时输入这些凭据。

存在各种替代方案可以在不同程度上改善这种情况:

1) 使用 OAuth 使上述建议“更容易”,因为 OAuth 更容易。这需要很好地了解 OAuth 的工作原理以及实现它的 LRS,我不知道 ADL xAPI 包装器是否支持它。

2) 使用与 LRS 的服务器端通信,这可以通过代理设置来完成,以便服务器可以进行身份​​验证,然后调整对 LRS 的调用的凭据,或者使用转换为 xAPI 调用的自定义调用。在代理情况下,重要的是中间服务器仍然对最终用户的凭据进行正确的身份验证。

3) 例如在启动场景中使用可过期的受限凭证,这样每次启动都会获得一个新的凭证,该凭证对 LRS 的访问权限有限。这就是最初的 Tin Can 启动指南的工作原理。(证书在客户端仍然可用。)

4) 使用一次性检索可过期的受限凭证,例如在启动场景中,例如如何指定 cmi5。在这种情况下,会话使用只能访问一次的获取 URL 启动,并将凭据提供回具有受限功能的客户端。(证书在客户端仍然可用。)

5) 自定义 LRS 以允许其他形式的身份验证。

除了 #2 之外,最终客户将始终拥有 LRS 的凭据。

于 2017-02-14T18:30:24.333 回答