sdk | ||
services/jedi | ||
.gitignore | ||
README.md |
gaore-common-sdk-go
目录架构
├── README.md
├── sdk
│ ├── auth `认证类`
│ ├── client.go `客户端主入口类`
│ ├── config.go
│ ├── requests `请求类`
│ ├── responses `响应类`
│ └── utils `工具类`
└── services
└── jedi
服务端认证调用事例
调用 auth.UnSign
方法,提供*http.Request
请求实例,以及signer.Signer
签名器(签名器需要包括凭据)
即可完成整个验签过程
package main
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/credentials"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/signers"
)
func init() {
// 过滤器
beego.InsertFilter("/api/*", beego.BeforeRouter, func(context *context.Context) {
httpRequest := context.Request
err := auth.UnSign(httpRequest, signers.NewAccessKeySigner(&credentials.AccessKeyCredential{
AccessKeyId: "aaaaaa",
AccessKeySecret: "bbbbbb",
AccessKeyFrom: context.Input.Param("access_from"),
}))
if err != nil {
resp := response.NewJsonByDefaultFailed()
resp.Msg = err.Error()
resp.Code = 10086
var (
hasIndent = beego.BConfig.RunMode != beego.PROD
)
context.Output.Status = 500
context.Output.JSON(resp, hasIndent, false)
}
})
}