1 回答

TA贡献1993条经验 获得超6个赞
您在请求中缺少 Bearer 令牌。(https://connect2id.com/products/server/docs/integration/direct-authz#error-401)当您卷曲时,您使用 -H 参数添加授权承载令牌 -H "Authorization: Bearer ztucBearerToken"
你需要在你的 Go 应用程序中做同样的事情。
func NewProvider(ctx context.Context, issuer string) (*Provider, error) {
wellKnown := strings.TrimSuffix(issuer, "/") + "/direct-authz/rest/v2"
req, err := http.NewRequest("POST", wellKnown, nil)
bearer := "Bearer ztucBearerToken"
req.Header.Add("Authorization", bearer)
if err != nil {
return nil, err
}
resp, err := doRequest(ctx, req) // Herer I get 401 Unauthorized
if err != nil {
return nil, err
}
// More code goes here
}
一些支持性事实
类似的 SO 讨论在这里。
为了摆脱
400 Bad Request: {"error_description":"Bad request: Invalid JSON: Unexpected token at position 0.","error":"invalid_request"}
您需要做的是传递必要的请求正文,如下所示。
req, err := http.NewRequest("POST", wellKnown, bytes.NewBuffer(bytesRepresentation))
有关更多信息,请访问与net/http相关的 Golang 文档
- 1 回答
- 0 关注
- 332 浏览
添加回答
举报