Skip to content

Commit

Permalink
Make it possible to include nonce in authorization code data
Browse files Browse the repository at this point in the history
  • Loading branch information
Danny Guinther committed Mar 27, 2023
1 parent d897f85 commit c9187c9
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 19 deletions.
17 changes: 9 additions & 8 deletions aioauth/response_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,14 +125,15 @@ async def create_authorization_response(
self, request: TRequest, client: Client
) -> AuthorizationCodeResponse:
authorization_code = await self.storage.create_authorization_code(
request,
client.client_id,
request.query.scope,
request.query.response_type, # type: ignore
request.query.redirect_uri,
request.query.code_challenge_method,
request.query.code_challenge,
generate_token(42),
client_id=client.client_id,
code=generate_token(42),
code_challenge=request.query.code_challenge,
code_challenge_method=request.query.code_challenge_method,
nonce=request.query.nonce,
redirect_uri=request.query.redirect_uri,
request=request,
response_type=request.query.response_type, # type: ignore
scope=request.query.scope,
)
return AuthorizationCodeResponse(
code=authorization_code.code,
Expand Down
1 change: 1 addition & 0 deletions aioauth/storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ async def create_authorization_code(
code_challenge_method: Optional[CodeChallengeMethod],
code_challenge: Optional[str],
code: str,
nonce: Optional[str],
) -> TAuthorizationCode:
"""Generates an authorization token and stores it in the database.
Expand Down
12 changes: 7 additions & 5 deletions tests/classes.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,17 +117,19 @@ async def create_authorization_code(
code_challenge_method: Optional[CodeChallengeMethod],
code_challenge: Optional[str],
code: str,
nonce: Optional[str],
):
authorization_code = AuthorizationCode(
code=code,
auth_time=int(time.time()),
client_id=client_id,
code=code,
code_challenge=code_challenge,
code_challenge_method=code_challenge_method,
expires_in=request.settings.AUTHORIZATION_CODE_EXPIRES_IN,
nonce=nonce,
redirect_uri=redirect_uri,
response_type=response_type,
scope=scope,
auth_time=int(time.time()),
code_challenge_method=code_challenge_method,
code_challenge=code_challenge,
expires_in=request.settings.AUTHORIZATION_CODE_EXPIRES_IN,
)
self.storage["authorization_codes"].append(authorization_code)

Expand Down
13 changes: 7 additions & 6 deletions tests/test_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,15 @@ async def test_storage_class(storage):

with pytest.raises(NotImplementedError):
await db.create_authorization_code(
request=request,
client_id=client.client_id,
scope="",
response_type="",
redirect_uri="",
code_challenge_method=None,
code_challenge=None,
code="123",
code_challenge=None,
code_challenge_method=None,
nonce="nonce",
redirect_uri="",
request=request,
response_type="",
scope="",
)

with pytest.raises(NotImplementedError):
Expand Down

0 comments on commit c9187c9

Please sign in to comment.