使用Golang生成Cognito Web Token并绑定到API的实现咨询
可用的Golang包及实现方案
AWS官方提供的Go SDK v2就内置了Cognito相关的完整能力,你可以直接使用github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider包完成token生成的全流程,不需要额外引入非官方的第三方包。
核心实现步骤
- 第一步先安装对应依赖:
go get github.com/aws/aws-sdk-go-v2/aws go get github.com/aws/aws-sdk-go-v2/config go get github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider - 根据你的认证场景调用对应接口获取Token:如果是用户名密码登录场景,调用
InitiateAuth方法,传入你的Cognito用户池ID、客户端ID、用户凭据即可拿到合法的Cognito Web Token;如果是已有刷新token的场景,同样调用该接口传入刷新token即可换发新的有效Token。 - 附加到API请求:在请求头中新增
Authorization字段,值设置为Bearer <你获取到的Token>即可,后端Cognito校验逻辑会自动识别该Token的合法性。
如果你有额外的Token校验、Payload解析需求,也可以搭配github.com/lestrrat-go/jwx/v2包使用,完成签名校验、字段提取的操作。
注意:不要手动构造、签名Cognito Token,所有合法Token必须通过Cognito服务接口签发,否则会被校验逻辑直接拦截。
内容的提问来源于stack exchange,提问作者Sathya
相关产品推荐
相关产品推荐

