如何延长文档数据库 REST API 资源令牌的到期时间
How to extend the Expiry of a Document DB REST API Resource Token
我正在通过 REST API 从前端应用程序监视文档数据库集合中的条目。
RESP API 根据特定过滤条件查询集合中的文档列表。
用于验证 REST API 调用的令牌是通过 .NET SDK 生成的。
这是用于生成令牌的代码片段:
string GenerateAuthToken(string verb, string resourceId, string resourceType, string key, string keyType, string tokenVersion)
{
var hmacSha256 = new System.Security.Cryptography.HMACSHA256 { Key = Convert.FromBase64String(key) };
string verbInput = verb ?? "";
string resourceIdInput = resourceId ?? "";
string resourceTypeInput = resourceType ?? "";
string dateString = DateTime.UtcNow.ToString("r").ToLower();
string payLoad = string.Format(System.Globalization.CultureInfo.InvariantCulture,
"{0}\n{1}\n{2}\n{3}\n{4}\n",
verb.ToLowerInvariant(),
resourceType.ToLowerInvariant(),
resourceId,
dateString,
""
);
byte[] hashPayLoad = hmacSha256.ComputeHash(System.Text.Encoding.UTF8.GetBytes(payLoad));
string signature = Convert.ToBase64String(hashPayLoad);
return System.Web.HttpUtility.UrlEncode(String.Format(System.Globalization.CultureInfo.InvariantCulture, "type={0}&ver={1}&sig={2}",
keyType,
tokenVersion,
signature));
}
Resource tokens must be generated by an intermediate server. The
server serves as the master-key guardian and generates
time-constrained tokens for untrusted clients, such as web browsers.
此令牌的默认到期时间是多少?有没有办法延长令牌的有效期?
默认情况下,资源令牌的有效期为1小时。有效期最多可覆盖 5 小时。
如果您使用的是 REST,则必须在 x-ms-documentdb-expiry-seconds” header 中设置 create/replace/read 权限。
更多创建方法请参考https://docs.microsoft.com/en-us/rest/api/documentdb/permissions
我正在通过 REST API 从前端应用程序监视文档数据库集合中的条目。
RESP API 根据特定过滤条件查询集合中的文档列表。
用于验证 REST API 调用的令牌是通过 .NET SDK 生成的。
这是用于生成令牌的代码片段:
string GenerateAuthToken(string verb, string resourceId, string resourceType, string key, string keyType, string tokenVersion)
{
var hmacSha256 = new System.Security.Cryptography.HMACSHA256 { Key = Convert.FromBase64String(key) };
string verbInput = verb ?? "";
string resourceIdInput = resourceId ?? "";
string resourceTypeInput = resourceType ?? "";
string dateString = DateTime.UtcNow.ToString("r").ToLower();
string payLoad = string.Format(System.Globalization.CultureInfo.InvariantCulture,
"{0}\n{1}\n{2}\n{3}\n{4}\n",
verb.ToLowerInvariant(),
resourceType.ToLowerInvariant(),
resourceId,
dateString,
""
);
byte[] hashPayLoad = hmacSha256.ComputeHash(System.Text.Encoding.UTF8.GetBytes(payLoad));
string signature = Convert.ToBase64String(hashPayLoad);
return System.Web.HttpUtility.UrlEncode(String.Format(System.Globalization.CultureInfo.InvariantCulture, "type={0}&ver={1}&sig={2}",
keyType,
tokenVersion,
signature));
}
Resource tokens must be generated by an intermediate server. The server serves as the master-key guardian and generates time-constrained tokens for untrusted clients, such as web browsers.
此令牌的默认到期时间是多少?有没有办法延长令牌的有效期?
默认情况下,资源令牌的有效期为1小时。有效期最多可覆盖 5 小时。
如果您使用的是 REST,则必须在 x-ms-documentdb-expiry-seconds” header 中设置 create/replace/read 权限。
更多创建方法请参考https://docs.microsoft.com/en-us/rest/api/documentdb/permissions