MCPcopy Create free account
hub / github.com/algolia/cli / RefreshToken

Method RefreshToken

api/dashboard/client.go:157–191  ·  view source on GitHub ↗

RefreshToken uses a refresh token to obtain a new access token.

(refreshToken string)

Source from the content-addressed store, hash-verified

155
156// RefreshToken uses a refresh token to obtain a new access token.
157func (c *Client) RefreshToken(refreshToken string) (*OAuthTokenResponse, error) {
158 form := url.Values{
159 "grant_type": {"refresh_token"},
160 "client_id": {c.ClientID},
161 "refresh_token": {refreshToken},
162 }
163
164 req, err := http.NewRequest(
165 http.MethodPost,
166 c.DashboardURL+"/2/oauth/token",
167 strings.NewReader(form.Encode()),
168 )
169 if err != nil {
170 return nil, err
171 }
172 req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
173 req.Header.Set("Accept", "application/json")
174
175 resp, err := c.client.Do(req)
176 if err != nil {
177 return nil, fmt.Errorf("token refresh request failed: %w", err)
178 }
179 defer resp.Body.Close()
180
181 if resp.StatusCode != http.StatusOK {
182 return nil, parseOAuthError(resp, "token refresh")
183 }
184
185 var tokenResp OAuthTokenResponse
186 if err := json.NewDecoder(resp.Body).Decode(&tokenResp); err != nil {
187 return nil, fmt.Errorf("failed to parse refresh token response: %w", err)
188 }
189
190 return &tokenResp, nil
191}
192
193// RevokeToken revokes an OAuth access or refresh token via POST /2/oauth/revoke.
194func (c *Client) RevokeToken(token string) error {

Callers 2

GetValidTokenFunction · 0.80
TestRefreshToken_SuccessFunction · 0.80

Calls 4

parseOAuthErrorFunction · 0.85
ErrorfMethod · 0.65
CloseMethod · 0.65
SetMethod · 0.45

Tested by 1

TestRefreshToken_SuccessFunction · 0.64