const https = require("https");
const crypto = require("crypto");
const db_id = "TestDB";
const coll_id = "Fruits";
const resourceType = "docs";
const resourceLink = `dbs/${db_id}/colls/${coll_id}/docs/fd327d79-fb20-f5ab-fc81-6e28482670b3`;
const masterKey = "填上 Master Key";
const UTC_Date = new Date(Date.now()).toUTCString();
const method = "GET";
const options = {
host: "yicheng.documents.azure.com",
port: 443,
path: `/` + resourceLink,
method,
headers: {
authorization: genAuthHeader(
method,
resourceType,
resourceLink,
UTC_Date,
masterKey
),
"x-ms-version": '2018-06-18',
"x-ms-date": UTC_Date,
'Accept': 'application/json',
'Content-Type': 'application/json',
}
};
function sendRequest() {
const req = https.request(options, res => {
console.log(res.statusCode);
res.on("data", function(data) {
console.log(data.toString());
});
});
req.on("error", e => {
console.error(e);
});
req.end();
}
sendRequest();
function genAuthHeader(
verb,
resourceType,
resourceId,
date,
master_Key
) {
const key = new Buffer(master_Key, "base64");
const text =
(verb || "").toLowerCase() +
"\n" +
(resourceType || "").toLowerCase() +
"\n" +
(resourceId || "") +
"\n" +
date.toLowerCase() +
"\n" +
"" +
"\n";
const body = new Buffer(text, "utf8");
const signature = crypto
.createHmac("sha256", key)
.update(body)
.digest("base64");
const tokenType = "master";
const TokenVersion = "1.0";
return encodeURIComponent(
"type=" + tokenType + "&ver=" + TokenVersion + "&sig=" + signature
);
}