Add PKCE support to SSO get_profile_and_token method #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Adds PKCE (Proof Key for Code Exchange) support to the SSO module's
get_profile_and_tokenmethod by introducing an optionalcode_verifierparameter. This brings the SSO module into alignment with the User Management module, which already supports PKCE flows viaauthenticate_with_code.Changes
code_verifierparameter toget_profile_and_tokenin bothSSOandAsyncSSOclassesSSOModuleProtocol to include the new parameterImplementation Details
The
code_verifierparameter is optional and only included in the API request when provided:This is backward-compatible - existing code continues to work without changes.
Testing
test_get_profile_and_token_with_code_verifierverifies the parameter is correctly included in the request@pytest.mark.sync_and_asyncHuman Review Checklist
/sso/tokenendpoint acceptscode_verifierparameter (most important - I assumed this based on user request)user_management.authenticate_with_codeDocumentation
Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.
If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.
Link to Devin run: https://app.devin.ai/sessions/0c9b40ba6db24b4db13880d75091292e
Requested by: Deep Singhvi ([email protected]) (@dsinghvi)