Skip to content
This repository was archived by the owner on Jun 23, 2023. It is now read-only.

Commit ccd7234

Browse files
committed
Fix bug with refresh id tokens
1 parent 10058ed commit ccd7234

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

src/oidcop/oidc/token.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ def process_request(self, req: Union[Message, dict], **kwargs):
246246
if "id_token" in _mints and "openid" in scope:
247247
try:
248248
_idtoken = self._mint_token(
249-
token_class="refresh_token",
249+
token_class="id_token",
250250
grant=_grant,
251251
session_id=_session_info["session_id"],
252252
client_id=_session_info["client_id"],

tests/test_35_oidc_token_endpoint.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
import json
33
import os
44

5+
import pytest
56
from cryptojwt import JWT
67
from cryptojwt.key_jar import build_keyjar
78
from oidcmsg.oidc import AccessTokenRequest
89
from oidcmsg.oidc import AuthorizationRequest
10+
from oidcmsg.oidc import AuthorizationResponse
911
from oidcmsg.oidc import RefreshAccessTokenRequest
1012
from oidcmsg.oidc import TokenErrorResponse
1113
from oidcmsg.time_util import utc_time_sans_frac
12-
import pytest
1314

1415
from oidcop import JWT_BEARER
1516
from oidcop.authn_event import create_authn_event
@@ -372,6 +373,10 @@ def test_do_refresh_access_token(self):
372373
"id_token",
373374
"scope",
374375
}
376+
AuthorizationResponse().from_jwt(
377+
_resp["response_args"]["id_token"], _cntx.keyjar, sender=""
378+
)
379+
375380
msg = self.token_endpoint.do_response(request=_req, **_resp)
376381
assert isinstance(msg, dict)
377382

@@ -420,6 +425,10 @@ def test_do_2nd_refresh_access_token(self):
420425
"id_token",
421426
"scope",
422427
}
428+
AuthorizationResponse().from_jwt(
429+
_2nd_resp["response_args"]["id_token"], _cntx.keyjar, sender=""
430+
)
431+
423432
msg = self.token_endpoint.do_response(request=_req, **_resp)
424433
assert isinstance(msg, dict)
425434

@@ -460,6 +469,11 @@ def test_refresh_scopes(self):
460469
"id_token",
461470
"scope",
462471
}
472+
AuthorizationResponse().from_jwt(
473+
_resp["response_args"]["id_token"],
474+
self.endpoint_context.keyjar,
475+
sender="",
476+
)
463477

464478
_token_value = _resp["response_args"]["access_token"]
465479
_session_info = self.session_manager.get_session_info_by_token(_token_value)
@@ -560,6 +574,11 @@ def test_refresh_more_scopes_2(self):
560574
"id_token",
561575
"scope",
562576
}
577+
AuthorizationResponse().from_jwt(
578+
_resp["response_args"]["id_token"],
579+
self.endpoint_context.keyjar,
580+
sender="",
581+
)
563582

564583
_token_value = _resp["response_args"]["access_token"]
565584
_session_info = self.session_manager.get_session_info_by_token(_token_value)
@@ -647,6 +666,11 @@ def test_refresh_no_offline_access_scope(self):
647666
"id_token",
648667
"scope",
649668
}
669+
AuthorizationResponse().from_jwt(
670+
_resp["response_args"]["id_token"],
671+
self.endpoint_context.keyjar,
672+
sender="",
673+
)
650674

651675
def test_new_refresh_token(self, conf):
652676
self.endpoint_context.cdb["client_1"] = {

0 commit comments

Comments
 (0)