Skip to content

refactor: replace OAuth2 callback_url with RFC 6749 compliant redirect_uris#18810

Closed
ThomasK33 wants to merge 1 commit into
thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocationfrom
thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance
Closed

refactor: replace OAuth2 callback_url with RFC 6749 compliant redirect_uris#18810
ThomasK33 wants to merge 1 commit into
thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocationfrom
thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance

Conversation

@ThomasK33

Copy link
Copy Markdown
Member

RFC 6749 Compliance: Replace callback_url with redirect_uris Array

This PR improves OAuth2 provider compliance with RFC 6749 by replacing the single callback_url field with a proper redirect_uris array. This change allows OAuth2 clients to register multiple valid redirect URIs and enforces exact URI matching as required by the specification.

Key changes:

  • Migrated database schema to remove callback_url column and make redirect_uris the source of truth
  • Updated API endpoints to accept and validate multiple redirect URIs
  • Modified OAuth2 authorization flow to perform exact URI matching against registered URIs
  • Changed device authorization endpoint to accept form-urlencoded data instead of JSON
  • Updated frontend to support adding/removing multiple redirect URIs
  • Added database migration with backward compatibility support

This change improves security by enforcing stricter redirect URI validation and provides more flexibility for OAuth2 clients that need multiple callback endpoints.

@ThomasK33
ThomasK33 force-pushed the thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation branch from dd9cb2f to ae754f4 Compare July 9, 2025 12:16
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from f9e6552 to 1444efe Compare July 9, 2025 12:16
@ThomasK33
ThomasK33 changed the base branch from thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation to graphite-base/18810 July 9, 2025 15:19
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from 1444efe to ef4a6c8 Compare July 9, 2025 22:21
@ThomasK33
ThomasK33 force-pushed the graphite-base/18810 branch from ae754f4 to ab73979 Compare July 9, 2025 22:21
@ThomasK33
ThomasK33 changed the base branch from graphite-base/18810 to thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation July 9, 2025 22:21
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from ef4a6c8 to e24c4b5 Compare July 10, 2025 09:15
@ThomasK33
ThomasK33 requested a review from johnstcn July 10, 2025 09:25
@ThomasK33
ThomasK33 marked this pull request as ready for review July 10, 2025 09:25
@ThomasK33
ThomasK33 requested review from Emyrk and mafredri July 10, 2025 11:10
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from e24c4b5 to 98e7f95 Compare July 12, 2025 12:55
@ThomasK33
ThomasK33 force-pushed the thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation branch from ab73979 to b89c367 Compare July 12, 2025 12:55
@ThomasK33
ThomasK33 force-pushed the thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation branch from b89c367 to b73b71d Compare July 14, 2025 12:43
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from 98e7f95 to 2792051 Compare July 14, 2025 12:43
@ThomasK33
ThomasK33 changed the base branch from thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation to graphite-base/18810 July 14, 2025 15:16
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from 2792051 to 3dd0c37 Compare July 14, 2025 16:22
@ThomasK33
ThomasK33 force-pushed the graphite-base/18810 branch from b73b71d to 386d77d Compare July 14, 2025 16:22
@ThomasK33
ThomasK33 changed the base branch from graphite-base/18810 to thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation July 14, 2025 16:22
@ThomasK33
ThomasK33 force-pushed the thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation branch from 386d77d to b58eed8 Compare July 14, 2025 17:18
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from 3dd0c37 to 962c22c Compare July 14, 2025 17:18
@ThomasK33
ThomasK33 changed the base branch from thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation to graphite-base/18810 July 15, 2025 16:03
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from 055d631 to bdc94d5 Compare August 12, 2025 16:30
@ThomasK33
ThomasK33 force-pushed the graphite-base/18810 branch from 9dfcc8a to aca2f6a Compare August 12, 2025 16:30
@ThomasK33
ThomasK33 changed the base branch from graphite-base/18810 to thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation August 12, 2025 16:30
@ThomasK33 ThomasK33 assigned Emyrk and unassigned ThomasK33 Aug 12, 2025
@ThomasK33
ThomasK33 changed the base branch from thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation to graphite-base/18810 August 12, 2025 16:49
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from bdc94d5 to 67bf443 Compare August 12, 2025 16:58
@ThomasK33
ThomasK33 force-pushed the graphite-base/18810 branch from aca2f6a to 35d7f5a Compare August 12, 2025 16:58
@ThomasK33
ThomasK33 changed the base branch from graphite-base/18810 to thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation August 12, 2025 16:58
@github-actions github-actions Bot added the stale This issue is like stale bread. label Aug 20, 2025
@github-actions github-actions Bot closed this Aug 24, 2025
@Emyrk Emyrk reopened this Aug 24, 2025
@github-actions github-actions Bot removed the stale This issue is like stale bread. label Aug 25, 2025
@github-actions github-actions Bot added the stale This issue is like stale bread. label Sep 1, 2025
@github-actions github-actions Bot closed this Sep 5, 2025
@ThomasK33
ThomasK33 deleted the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch September 15, 2025 07:52
@ThomasK33
ThomasK33 restored the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch September 15, 2025 07:54
@Emyrk Emyrk reopened this Oct 6, 2025
@ThomasK33
ThomasK33 force-pushed the thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation branch from 35d7f5a to 8b4b6f0 Compare October 10, 2025 14:42
@ThomasK33
ThomasK33 requested a review from buenos-nachos as a October 10, 2025 14:42
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from 67bf443 to 7b4150a Compare October 10, 2025 14:42
@ThomasK33
ThomasK33 force-pushed the thomask33/07-07-feat_standardize_oauth2_endpoints_and_add_token_revocation branch from 8b4b6f0 to 81adc67 Compare October 10, 2025 14:53
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from 7b4150a to be56098 Compare October 10, 2025 14:53
…pliance

Change-Id: I4823e475777ebdf75e3a80e47ff6bef1a556cd55
Signed-off-by: Thomas Kosiewski <tk@coder.com>
@ThomasK33
ThomasK33 force-pushed the thomask33/07-08-feat_replace_callback_url_with_redirect_uris_for_oauth2_rfc_6749_compliance branch from be56098 to d00dd0b Compare October 10, 2025 14:57
@mafredri

Copy link
Copy Markdown
Member

Removing my review due to PR being stale, feel free to add me back if this becomes relevant again.

@Emyrk Emyrk closed this Jan 26, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators Jan 26, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

stale This issue is like stale bread.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants