Documentation
¶
Index ¶
Constants ¶
View Source
const ( HeaderAccept = "Accept" HeaderContentMD5 = "Content-Md5" HeaderContentType = "Content-Type" HeaderDate = "Date" HeaderCAKey = "X-Ca-Key" HeaderCANonce = "X-Ca-Nonce" HeaderCASignature = "X-Ca-Signature" HeaderCASignatureHeaders = "X-Ca-Signature-Headers" HeaderCASignatureMethod = "X-Ca-Signature-Method" HeaderCATimestamp = "X-Ca-Timestamp" )
请求头
View Source
const ( SignatureMethodHmacSHA256 = "HmacSHA256" SignatureMethodHmacSHA1 = "HmacSHA1" )
签名算法
View Source
const ( MIMEForm = "application/x-www-form-urlencoded" MIMEMultipartForm = "multipart/form-data" MIMEMultipartFormWithBoundary = MIMEMultipartForm + "; boundary=" )
MIME 类型
View Source
const (
// ContextAppKey AppKey 上下文
ContextAppKey = contextKey("X-AppKey")
)
Variables ¶
View Source
var ( // ErrInvalidSignParams 签名参数错误 ErrInvalidSignParams = bizerr.ErrInvalidSignParams // ErrInvalidContentMD5 Content-MD5 错误 ErrInvalidContentMD5 = bizerr.ErrInvalidContentMD5 // ErrBodyTooLarge 请求体过大错误 ErrBodyTooLarge = bizerr.ErrBodyTooLarge )
Functions ¶
func AppKeyFromCtx ¶
AppKeyFromCtx 从 context 获取 AppKey
Types ¶
type AppSign ¶
type AppSign struct {
Method string // 请求方法,必填
Accept string // "Accept" 请求头部的值,非必填
ContentMD5 string // "Content-MD5" 请求头部的值, 非必填
ContentType string // "Content-Type" 请求头部的值,非必填
Date string // "Data" 请求头部的值,非必填
Key string // 应用 AppKey,必填
Nonce string // 随机数,必填
Signature string // 签名,必填
SignatureHeaders []string // 所有签名请求头部的 slice,非必填
SignatureHeaderMap map[string]string // 所有签名请求头部的 map,非必填
SignatureMethod string // 签名算法,非必填,支持 HmacSHA256 和 HmacSHA1,默认为 HmacSHA256
Timestamp int64 // 毫秒级时间戳,必填
Params string // 参数,计算得到
StringToSign string // 待签名字符串,计算得到
}
AppSign 应用签名
签名规则参考:阿里云使用摘要签名认证方式调用 API https://help.aliyun.com/zh/api-gateway/user-guide/use-digest-authentication-to-call-an-api 的规则并实现
下列请求头部不参与请求头部签名计算:
"Accept"、"Content-MD5"、"Content-Type"、"Date"、"X-Ca-Signature" 和 "X-Ca-Signature-Headers"
下列请求头部是必填项:
"X-Ca-Key"、"X-Ca-Nonce"、"X-Ca-Signature" 和 "X-Ca-Timestamp"
func (*AppSign) CalcStringToSign ¶
CalcStringToSign 计算待签名字符串
Click to show internal directories.
Click to hide internal directories.