Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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 安全地从SharePoint Online向my on prem API调用REST API_Javascript_Api_Rest_Sharepoint - Fatal编程技术网

Javascript 安全地从SharePoint Online向my on prem API调用REST API

Javascript 安全地从SharePoint Online向my on prem API调用REST API,javascript,api,rest,sharepoint,Javascript,Api,Rest,Sharepoint,我有一段JavaScript,我需要给一个供应商。他们将把这个脚本合并到我们的O365 SharePoint租户中(我猜是在母版页中)。该脚本调用一个位于prem上的restapi,从数据库中检索一些信息,并将其显示在SPO页面上 API使用OAuth 2.0,因此脚本需要以某种方式获取应用程序ID和API密钥,以便调用以获取访问令牌,然后使用该访问令牌对API进行调用。我不想将这些键编码到脚本中(显然) 我如何将ID/密钥安全地存储在JS文件之外的某个地方,以便任何知道如何使用开发人员工具的人

我有一段JavaScript,我需要给一个供应商。他们将把这个脚本合并到我们的O365 SharePoint租户中(我猜是在母版页中)。该脚本调用一个位于prem上的restapi,从数据库中检索一些信息,并将其显示在SPO页面上

API使用OAuth 2.0,因此脚本需要以某种方式获取应用程序ID和API密钥,以便调用以获取访问令牌,然后使用该访问令牌对API进行调用。我不想将这些键编码到脚本中(显然)

我如何将ID/密钥安全地存储在JS文件之外的某个地方,以便任何知道如何使用开发人员工具的人都看不到它

下面是一个修改后的脚本片段,用于获取访问令牌。 我想替换(至少)前3行以安全地生成身份验证令牌。如果可能的话,我想替换所有代码以安全地检索访问令牌

// BEGIN: NEED TO SECURE
var appID = 'aaabbbccc';
var apiKey= 'somelongstring...';
var authorizationToken = SomeCodeToMakeFromAppIdAndKey(appID,apiKey);
// END: NEED TO SECURE

var endpointUrl = apiUrl + '/api/token';

return $http({
    method: 'POST',
    url: endpointUrl,
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
        'Authorization': 'basic ' + authorizationToken
    },
    data: "grant_type=client_credentials"
}).then(function(response) {
    // get the access token from the 'access_token' property of the data object
    return response.data.access_token;
};

非常感谢您的帮助

不能在服务器端完成吗?这就是我想弄明白的。脚本位于SPO服务器上/从SPO服务器运行,我需要安全地调用我的服务器。我可以打电话到我的一个服务器,让它得到令牌,但我正试图找出如何安全地做到这一点。我已经在为API调用我的服务器了。你不应该在客户端上有你的密钥,获取你的访问令牌并将其发送到服务器以获取你的身份验证。这就是我要问的。我需要知道如何安全地从客户机上的SPO中的JS调用我的一个服务器。