如何解决AWS Cloudfront对名称中带有“ +”的文件签名的cookie失败
如果我尝试为名称中带有“ +”字符的文件生成签名的cookie,则在应用程序中将看不到该文件。
我使用以下代码生成Cookie:
func GenerateCookie(ctx *gin.Context,userID string) error {
privKey,err := sign.LoadPEMPrivKeyFile(os.Getenv("AWS_KEY"))
if err != nil {
return err
}
cs := sign.NewCookieSigner(os.Getenv("AWS_KEY_CLOUDFRONT"),privKey)
expire := time.Now().UTC().Add(2 * time.Hour)
policy := &sign.Policy{
Statements: []sign.Statement{
{
Resource: os.Getenv("CLOUDFRONT_DOMAIN") + "/" + userID + "/*",Condition: sign.Condition{
DateLessThan: &sign.AWSEpochTime{Time: expire},},}
cookies,err := cs.SignWithPolicy(policy)
if err != nil {
return err
}
maxage := int(expire.Unix() - time.Now().Unix())
for _,c := range cookies {
ctx.SetCookie(c.Name,c.Value,maxage,"/",os.Getenv("DOMAIN"),util.GetIsSecureCookie(),true)
}
return err
}
我该如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。