diff --git a/apps/gooyal_oauth2/validators.py b/apps/gooyal_oauth2/validators.py index f0186dc..1914361 100755 --- a/apps/gooyal_oauth2/validators.py +++ b/apps/gooyal_oauth2/validators.py @@ -50,3 +50,27 @@ class OAuth2Validator(BaseOAuth2Validator): # pylint: disable=w0223 return True return False + + def get_additional_claims(self, request): + return { + "given_name": request.user.first_name, + "family_name": request.user.last_name, + "name": ' '.join([request.user.first_name, request.user.last_name]), + "preferred_username": request.user.username, + "email": request.user.email, + } + + def get_claim_dict(self, request): + if self._get_additional_claims_is_request_agnostic(): + claims = {"sub": lambda r: str(r.user.pk)} + else: + claims = {"sub": str(request.user.pk)} + + # https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims + if self._get_additional_claims_is_request_agnostic(): + add = self.get_additional_claims() + else: + add = self.get_additional_claims(request) + claims.update(add) + + return claims