鉴权方式 A

鉴权 URL 格式

http://Hostname/Filename?sign=timestamp-rand-uid-md5hash

鉴权字段说明

字段
说明
Hostname
站点加速域名。
Path
资源访问路径,鉴权时需以/开头。
sign
自定义设置的鉴权参数名称。
timestamp
十进制整型正数的 Unix 时间戳(从 UTC 时间 1970 年 01 月 01 日 00 时 00 分 00 秒到现在的总秒数,其定义与所在时区无关。)
rand
0 - 100 位随机字符串,由大小写字母与数字组成。
uid
用户 ID,暂未使用,默认为 0。
md5hash
通过 MD5 算法计算出的固定长度为 32 位的字符串:
算法:MD5(Path-timestamp-rand-uid-密钥)。
鉴权逻辑:若请求未过期,则节点比较此字符串值与请求 URL 中携带的 md5hash 值:两值相同,鉴权通过,响应请求;两值不同,鉴权失败,返回 403。

配置示例

假设请求 https://www.example.com/foo.jpg 使用鉴权方式 A,配置如下:


获取鉴权参数

Path:/foo.jpg
timestamp:服务端生成鉴权 URL 的时间为2024年7月15日 15:27:17(UTC+8),转换为十进制(Unix 时间戳)格式的数值为1721028437
rand:生成随机数为 Kv4cPTAAP5YTi
uid:0
密钥:DvYmqE81E1F9R791H6lmht
md5hash:MD5(Path-timestamp-rand-uid-密钥)= MD5(/foo.jpg-1721028437-Kv4cPTAAP5YTi-0-DvYmqE81E1F9R791H6lmht)= 0fbdca749d7ab784750685347e42075c

客户端请求生成的鉴权 URL

https://www.example.com/foo.jpg?sign=1721028437-Kv4cPTAAP5YTi-0-0fbdca749d7ab784750685347e42075c

节点鉴权

当节点服务器接受到客户端通过加密 URL 发出的请求时,解析出 URL 中的 timestamp 参数,加上配置的有效时长“1秒”,与当前时间比较:
1. 若当前时间超过“timestamp + 有效时长”时间,则为过期请求,直接返回 403。若当前时间未超过“timestamp + 有效时长”时间,则请求未过期,继续第 2 步。
2. 节点服务器通过获取的鉴权参数计算 md5hash 值,与请求 URL 中携带的 md5hash 值做比较:两值相同,鉴权通过,响应请求;两值不同,鉴权失败,返回 403。