Javascript 安全地从SharePoint Online向my on prem API调用REST API
我有一段JavaScript,我需要给一个供应商。他们将把这个脚本合并到我们的O365 SharePoint租户中(我猜是在母版页中)。该脚本调用一个位于prem上的restapi,从数据库中检索一些信息,并将其显示在SPO页面上 API使用OAuth 2.0,因此脚本需要以某种方式获取应用程序ID和API密钥,以便调用以获取访问令牌,然后使用该访问令牌对API进行调用。我不想将这些键编码到脚本中(显然) 我如何将ID/密钥安全地存储在JS文件之外的某个地方,以便任何知道如何使用开发人员工具的人都看不到它 下面是一个修改后的脚本片段,用于获取访问令牌。 我想替换(至少)前3行以安全地生成身份验证令牌。如果可能的话,我想替换所有代码以安全地检索访问令牌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文件之外的某个地方,以便任何知道如何使用开发人员工具的人
// 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调用我的一个服务器。