release: prepare v0.1.134
This commit is contained in:
@@ -424,6 +424,24 @@ func ParseImportedToken(tokenJSON string, deviceRegistrationJSON string) (*Token
|
||||
return &token, nil
|
||||
}
|
||||
|
||||
func ParseImportedRefreshToken(tokenJSON string) (*TokenData, bool, error) {
|
||||
var token TokenData
|
||||
if err := json.Unmarshal([]byte(tokenJSON), &token); err != nil {
|
||||
return nil, false, fmt.Errorf("failed to parse kiro token: %w", err)
|
||||
}
|
||||
token.AuthMethod = strings.ToLower(strings.TrimSpace(token.AuthMethod))
|
||||
if token.AuthMethod == "" {
|
||||
token.AuthMethod = "social"
|
||||
}
|
||||
if token.Provider == "" && token.AuthMethod == "social" {
|
||||
token.Provider = string(SocialProviderGoogle)
|
||||
}
|
||||
if strings.TrimSpace(token.RefreshToken) == "" || strings.TrimSpace(token.AccessToken) != "" {
|
||||
return &token, false, nil
|
||||
}
|
||||
return &token, true, nil
|
||||
}
|
||||
|
||||
func getOIDCEndpoint(region string) string {
|
||||
if strings.TrimSpace(oidcEndpointOverride) != "" {
|
||||
return strings.TrimRight(strings.TrimSpace(oidcEndpointOverride), "/")
|
||||
|
||||
@@ -54,3 +54,35 @@ func TestSessionStoreSetPrunesExpiredSessions(t *testing.T) {
|
||||
t.Fatalf("fresh session should remain after pruning")
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseImportedRefreshTokenAcceptsRefreshTokenOnlyPayload(t *testing.T) {
|
||||
token, refreshOnly, err := ParseImportedRefreshToken(`{"refreshToken":"rt","provider":"Google"}`)
|
||||
if err != nil {
|
||||
t.Fatalf("ParseImportedRefreshToken() error = %v", err)
|
||||
}
|
||||
if !refreshOnly {
|
||||
t.Fatalf("refreshOnly = false, want true")
|
||||
}
|
||||
if token.RefreshToken != "rt" {
|
||||
t.Fatalf("refresh token = %q, want rt", token.RefreshToken)
|
||||
}
|
||||
if token.Provider != "Google" {
|
||||
t.Fatalf("provider = %q, want Google", token.Provider)
|
||||
}
|
||||
if token.AuthMethod != "social" {
|
||||
t.Fatalf("auth method = %q, want social", token.AuthMethod)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseImportedRefreshTokenKeepsFullTokenAsNonRefreshOnly(t *testing.T) {
|
||||
token, refreshOnly, err := ParseImportedRefreshToken(`{"accessToken":"at","refreshToken":"rt"}`)
|
||||
if err != nil {
|
||||
t.Fatalf("ParseImportedRefreshToken() error = %v", err)
|
||||
}
|
||||
if refreshOnly {
|
||||
t.Fatalf("refreshOnly = true, want false")
|
||||
}
|
||||
if token.Provider != "Google" {
|
||||
t.Fatalf("provider = %q, want default Google", token.Provider)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user