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

Function GetValidToken

pkg/auth/token_store.go:101–132  ·  view source on GitHub ↗

GetValidToken returns a valid access token, refreshing if necessary.

(client *dashboard.Client)

Source from the content-addressed store, hash-verified

99
100// GetValidToken returns a valid access token, refreshing if necessary.
101func GetValidToken(client *dashboard.Client) (string, error) {
102 stored := LoadToken()
103 if stored == nil {
104 return "", fmt.Errorf("not logged in — run `algolia auth login` first")
105 }
106
107 if !stored.IsExpired() {
108 return stored.AccessToken, nil
109 }
110
111 if stored.RefreshToken == "" {
112 ClearToken()
113 return "", fmt.Errorf("session expired — run `algolia auth login` to re-authenticate")
114 }
115
116 tokenResp, err := client.RefreshToken(stored.RefreshToken)
117 if err != nil {
118 ClearToken()
119 return "", fmt.Errorf("session expired and refresh failed — run `algolia auth login` to re-authenticate: %w", err)
120 }
121
122 refreshed := storedTokenFromResponse(tokenResp)
123 if refreshed.UserID == "" {
124 refreshed.UserID = stored.UserID
125 refreshed.Email = stored.Email
126 refreshed.Name = stored.Name
127 }
128
129 _ = persistToken(refreshed)
130
131 return refreshed.AccessToken, nil
132}

Calls 7

LoadTokenFunction · 0.85
ClearTokenFunction · 0.85
storedTokenFromResponseFunction · 0.85
persistTokenFunction · 0.85
IsExpiredMethod · 0.80
RefreshTokenMethod · 0.80
ErrorfMethod · 0.65