Skip to content

Commit a71f61d

Browse files
committed
feat: add email verified claim
1 parent 6bf4440 commit a71f61d

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

internal/controller/well_known_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func (controller *WellKnownController) OpenIDConnectConfiguration(c *gin.Context
5959
SubjectTypesSupported: []string{"pairwise"},
6060
IDTokenSigningAlgValuesSupported: []string{"RS256"},
6161
TokenEndpointAuthMethodsSupported: []string{"client_secret_basic", "client_secret_post"},
62-
ClaimsSupported: []string{"sub", "updated_at", "name", "preferred_username", "email", "groups"},
62+
ClaimsSupported: []string{"sub", "updated_at", "name", "preferred_username", "email", "email_verified", "groups"},
6363
ServiceDocumentation: "https://tinyauth.app/docs/guides/oidc",
6464
})
6565
}

internal/service/oidc_service.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ type ClaimSet struct {
4949
Exp int64 `json:"exp"`
5050
Name string `json:"name,omitempty"`
5151
Email string `json:"email,omitempty"`
52+
EmailVerified bool `json:"email_verified,omitempty"`
5253
PreferredUsername string `json:"preferred_username,omitempty"`
5354
Groups []string `json:"groups,omitempty"`
5455
Nonce string `json:"nonce,omitempty"`
@@ -60,6 +61,7 @@ type UserinfoResponse struct {
6061
Email string `json:"email,omitempty"`
6162
PreferredUsername string `json:"preferred_username,omitempty"`
6263
Groups []string `json:"groups,omitempty"`
64+
EmailVerified bool `json:"email_verified,omitempty"`
6365
UpdatedAt int64 `json:"updated_at"`
6466
}
6567

@@ -388,6 +390,7 @@ func (service *OIDCService) generateIDToken(client config.OIDCClientConfig, user
388390
Exp: expiresAt,
389391
Name: userInfo.Name,
390392
Email: userInfo.Email,
393+
EmailVerified: userInfo.EmailVerified,
391394
PreferredUsername: userInfo.PreferredUsername,
392395
Groups: userInfo.Groups,
393396
Nonce: nonce,
@@ -583,6 +586,8 @@ func (service *OIDCService) CompileUserinfo(user repository.OidcUserinfo, scope
583586

584587
if slices.Contains(scopes, "email") {
585588
userInfo.Email = user.Email
589+
// We can set this as a configuration option in the future but for now it's a good idea to assume it's true
590+
userInfo.EmailVerified = true
586591
}
587592

588593
if slices.Contains(scopes, "groups") {

0 commit comments

Comments
 (0)