Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在与LRS的交互中隐藏或保护身份验证凭据_Javascript_Tin Can Api - Fatal编程技术网

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

Javascript 如何在与LRS的交互中隐藏或保护身份验证凭据,javascript,tin-can-api,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(fun

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

$(“#我的按钮”)。单击(函数(){
//创建两个局部变量
var name=$(“#nameID”).val();
var email=$(“#emailID”).val();
如果(名称=“”){
警报(“请输入名称”);
myForm.name.focus();
返回(假);
}
如果(电子邮件=“”){
提醒(“请输入电子邮件”);
myForm.name.focus();
返回(假);
}
//创建全局变量
setGlobal(电子邮件、姓名);
//移到第2页
document.location.replace(“tableOfContents.html”);
});
//设置一些全局变量,以备以后需要。
函数setGlobal(actEmail,actName){
//将名称保存在localStorage中。
setItem('name',actName);
//将电子邮件保存在本地存储中。
setItem('email',actEmail);
}
$(“#反馈”)。单击(函数(){
窗口。打开('mailto:internaltraining@syniverse.com?主题=对MS Office 365教程的反馈);
});
$(“#注销”)。单击(函数(){
localStorage.removietem(“名称”);
localStorage.removietem(“电子邮件”);
document.location.replace(“index.html”);
});
//ADL LRS的授权
变量配置={
“端点”:https://lrs.adlnet.gov/xapi/",
“用户”:“xapi工具”,
“密码”:“xapi工具”,
“auth”:“xapi工具”
};
$(“#myModal”).on('hidden.bs.modal',函数(e){
$(“#myModal iframe”).attr(“src”),$(“#myModal iframe”).attr(“src”);
});
有效,否

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

存在各种不同的替代方案来在不同程度上改善情况:

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

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

3) 例如,在启动场景中使用可过期、有限的凭据,以便为每次启动提供一个对LRS的访问受限的新凭据。这就是最初的Tin启动指南的工作原理。(该凭据在客户端中仍然可用。)

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

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

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

实际上,不是

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

存在各种不同的替代方案来在不同程度上改善情况:

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

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

3) 例如,在启动场景中使用可过期、有限的凭据,以便为每次启动提供一个对LRS的访问受限的新凭据。这就是最初的Tin启动指南的工作原理。(该凭据在客户端中仍然可用。)

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

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

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

应该是,1)使用OAuth使上述建议“更容易”,因为OAuth从来都不容易。不允许我编辑一个字符:(应该是,1)使用OAuth使上述建议“更容易”,因为OAuth从来都不容易。不允许我编辑一个字符:(