GetAccessTokenFromClientCreds generates an access token from client credentials.
(ctx context.Context, args ClientCredentials)
| 237 | |
| 238 | // GetAccessTokenFromClientCreds generates an access token from client credentials. |
| 239 | func GetAccessTokenFromClientCreds(ctx context.Context, args ClientCredentials) (Result, error) { |
| 240 | u, err := url.Parse("https://" + args.Domain) |
| 241 | if err != nil { |
| 242 | return Result{}, err |
| 243 | } |
| 244 | |
| 245 | credsConfig := &clientcredentials.Config{ |
| 246 | ClientID: args.ClientID, |
| 247 | ClientSecret: args.ClientSecret, |
| 248 | TokenURL: u.String() + "/oauth/token", |
| 249 | EndpointParams: url.Values{ |
| 250 | "client_id": {args.ClientID}, |
| 251 | "audience": {u.String() + "/api/v2/"}, |
| 252 | }, |
| 253 | } |
| 254 | |
| 255 | resp, err := credsConfig.Token(ctx) |
| 256 | if err != nil { |
| 257 | return Result{}, err |
| 258 | } |
| 259 | |
| 260 | return Result{ |
| 261 | AccessToken: resp.AccessToken, |
| 262 | ExpiresAt: resp.Expiry, |
| 263 | }, nil |
| 264 | } |
| 265 | |
| 266 | // GetAccessTokenFromClientPrivateJWT generates an access token from client prviateJWT. |
| 267 | func GetAccessTokenFromClientPrivateJWT(args PrivateKeyJwtTokenSource) (Result, error) { |
no test coverage detected