Added refresh token flow

This commit is contained in:
David Allen 2024-03-18 11:05:13 -06:00
parent 6938037a3c
commit 16ec8fc422
No known key found for this signature in database
GPG key ID: 1D2A29322FBB6FCB
4 changed files with 56 additions and 2 deletions

View file

@ -211,6 +211,10 @@ func (client *Client) PerformTokenGrant(clientUrl string, encodedJwt string) ([]
}
_, b, err := httpx.MakeHttpRequest(clientUrl, http.MethodPost, []byte(body), headers)
if err != nil {
return nil, fmt.Errorf("failed to make HTTP request: %v", err)
}
// set flow ID back to empty string to indicate a completed flow
client.FlowId = ""
@ -218,6 +222,18 @@ func (client *Client) PerformTokenGrant(clientUrl string, encodedJwt string) ([]
return b, err
}
func (client *Client) PerformRefreshTokenGrant(url string, refreshToken string) ([]byte, error) {
body := httpx.Body("grant_type=refresh_token" +
"&refresh_token=" + refreshToken +
"&scope" + strings.Join(client.Scope, "+"))
headers := httpx.Headers{}
_, b, err := httpx.MakeHttpRequest(url, http.MethodPost, body, headers)
if err != nil {
return nil, fmt.Errorf("failed to make HTTP request: %v", err)
}
return b, err
}
func (client *Client) DeleteOAuthClient(clientUrl string) error {
_, _, err := httpx.MakeHttpRequest(clientUrl+"/"+client.Id, http.MethodDelete, nil, nil)
if err != nil {