feat: implement sign in with idp

This commit is contained in:
Steven
2024-08-06 22:15:28 +08:00
parent 6db8611a58
commit 647726fc2d
15 changed files with 302 additions and 197 deletions

View File

@ -99,7 +99,7 @@ func (p *IdentityProvider) UserInfo(token string) (*idp.IdentityProviderUserInfo
return nil, errors.Errorf("the field %q is not found in claims or has empty value", p.config.FieldMapping.Identifier)
}
// Best effort to map optional fields
// Best effort to map optional fields.
if p.config.FieldMapping.DisplayName != "" {
if v, ok := claims[p.config.FieldMapping.DisplayName].(string); ok {
userInfo.DisplayName = v
@ -108,10 +108,5 @@ func (p *IdentityProvider) UserInfo(token string) (*idp.IdentityProviderUserInfo
if userInfo.DisplayName == "" {
userInfo.DisplayName = userInfo.Identifier
}
if p.config.FieldMapping.Email != "" {
if v, ok := claims[p.config.FieldMapping.Email].(string); ok {
userInfo.Email = v
}
}
return userInfo, nil
}

View File

@ -140,7 +140,6 @@ func TestIdentityProvider(t *testing.T) {
FieldMapping: &storepb.IdentityProviderConfig_FieldMapping{
Identifier: "sub",
DisplayName: "name",
Email: "email",
},
},
)