处理gsdata签名中的日期
您在凭证范围中使用的日期必须与您的请求的日期匹配。您可以用多种方法将日期包括在请求中。您需要使用 x-gsdata-date 标头。有关示例请求,请参阅完整签名过程的示例 (Python)。
时间戳必须采用 UTC 表示,并具有以下 ISO 8601 格式:YYYYMMDD'T'HHMMSS'Z'。例如,20170620T123600Z 是有效时间戳。请勿在时间戳中包含毫秒。
GSDATA 先检查时间戳的 x-gsdata-date 标头。如果 GSDATA 找不到 x-gsdata-date 的值,它将验证不通过。随后,GSDATA 检查八位数字字符串形式的凭证范围,表示请求的年 (YYYY)、月 (MM) 和日 (DD)。例如,如果 x-gsdata-date 标头值为 20170620T080000Z,并且凭证范围的日期部分为 20170620,则 GSDATA 允许身份验证过程继续执行。
如果日期不匹配,则 gsdata 拒绝请求,即使时间戳距离凭证范围中的日期仅有数秒之差也是如此。例如,GSDATA 将拒绝其 x-gsdata-date 标头值为 20170620T235959Z 且凭证范围包括日期 20170621 的请求。