fix(oauth): support response_mode=form_post
#1669
Merged
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.
What:
Read
state
fromreq.body
, whenresponse_type=form_post
is present.Why:
Currently, if the user requires
resposne_mode=form_post
for their provider (which is something we should consider as it is part of the OAuth spec: https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html), our implementation will fail to execute thestate
and/orpkce
verifications whenprotection: ["pkce", "state"]
(or similar) is set.How:
In the appropriate handler, we simply fall back to
req.body
, ifreq.query
did not contain a value forstate
Related: #1664 (it although some advanced cookie will be needed for this to work properly. Please see #1664 (comment))