@@ -29,6 +29,7 @@ def test_get_connect_discovery_info(self):
2929 "subject_types_supported" : ["public" ],
3030 "id_token_signing_alg_values_supported" : ["RS256" , "HS256" ],
3131 "token_endpoint_auth_methods_supported" : ["client_secret_post" , "client_secret_basic" ],
32+ "claims_supported" : ["sub" ],
3233 }
3334 response = self .client .get (reverse ("oauth2_provider:oidc-connect-discovery-info" ))
3435 self .assertEqual (response .status_code , 200 )
@@ -55,6 +56,7 @@ def test_get_connect_discovery_info_without_issuer_url(self):
5556 "subject_types_supported" : ["public" ],
5657 "id_token_signing_alg_values_supported" : ["RS256" , "HS256" ],
5758 "token_endpoint_auth_methods_supported" : ["client_secret_post" , "client_secret_basic" ],
59+ "claims_supported" : ["sub" ],
5860 }
5961 response = self .client .get (reverse ("oauth2_provider:oidc-connect-discovery-info" ))
6062 self .assertEqual (response .status_code , 200 )
@@ -146,11 +148,21 @@ def test_userinfo_endpoint_bad_token(oidc_tokens, client):
146148 assert rsp .status_code == 401
147149
148150
151+ EXAMPLE_EMAIL = "[email protected] " 152+
153+
154+ def claim_user_email (request ):
155+ return EXAMPLE_EMAIL
156+
157+
149158@pytest .mark .django_db
150159def test_userinfo_endpoint_custom_claims (oidc_tokens , client , oauth2_settings ):
151160 class CustomValidator (OAuth2Validator ):
152- def get_additional_claims (self , request ):
153- return {"state" : "very nice" }
161+ def get_additional_claims (self ):
162+ return [
163+ ("username" , claim_user_email ),
164+ ("email" , claim_user_email ),
165+ ]
154166
155167 oidc_tokens .oauth2_settings .OAUTH2_VALIDATOR_CLASS = CustomValidator
156168 auth_header = "Bearer %s" % oidc_tokens .access_token
@@ -161,5 +173,9 @@ def get_additional_claims(self, request):
161173 data = rsp .json ()
162174 assert "sub" in data
163175 assert data ["sub" ] == str (oidc_tokens .user .pk )
164- assert "state" in data
165- assert data ["state" ] == "very nice"
176+
177+ assert "username" in data
178+ assert data ["username" ] == EXAMPLE_EMAIL
179+
180+ assert "email" in data
181+ assert data ["email" ] == EXAMPLE_EMAIL
0 commit comments