Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(auth-google,auth-github): Allow passing a custom callbackUrl to … #10829

Merged
merged 3 commits into from
Jan 6, 2025

Conversation

sradevski
Copy link
Member

@sradevski sradevski commented Jan 6, 2025

This is necessary so we can support different login pages based on the actor. This is also an intended approach to implementing oauth, where the client can control the callbackUrl (but the allowed redirects are limited within the Oauth app configuration)

For example, you might have a user/github/callback page and a customer/github/callback page, and where you redirect to would depend on which actor is doing the authentication.

The PR also adds the state parameter as defined in the Oauth protocol.

Note: If you have overridden the auth module definition in your medusa config, you will need to pass Modules.CACHE as a dependency. This can be considered a breaking change due to that fact.

We can also make it non-breaking by not storing the state and always returning the default callbackUrl as the state value. This reduces the security of the implementation, but can be an acceptable fallback.

Copy link

vercel bot commented Jan 6, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
api-reference 🔄 Building (Inspect) Visit Preview 💬 Add feedback Jan 6, 2025 4:05pm
medusa-dashboard ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 6, 2025 4:05pm
5 Skipped Deployments
Name Status Preview Comments Updated (UTC)
api-reference-v2 ⬜️ Ignored (Inspect) Visit Preview Jan 6, 2025 4:05pm
docs-ui ⬜️ Ignored (Inspect) Visit Preview Jan 6, 2025 4:05pm
docs-v2 ⬜️ Ignored (Inspect) Visit Preview Jan 6, 2025 4:05pm
medusa-docs ⬜️ Ignored (Inspect) Visit Preview Jan 6, 2025 4:05pm
resources-docs ⬜️ Ignored (Inspect) Visit Preview Jan 6, 2025 4:05pm

Copy link

changeset-bot bot commented Jan 6, 2025

⚠️ No Changeset found

Latest commit: 7273cbf

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@sradevski
Copy link
Member Author

/snapshot-this

Copy link
Contributor

github-actions bot commented Jan 6, 2025

🚀 A snapshot release has been made for this PR

Test the snapshots by updating your package.json with the newly published versions:

yarn add @medusajs/admin-bundler@2.1.4-snapshot-20250106093301
yarn add @medusajs/admin-sdk@2.1.4-snapshot-20250106093301
yarn add @medusajs/admin-shared@2.1.4-snapshot-20250106093301
yarn add @medusajs/admin-vite-plugin@2.1.4-snapshot-20250106093301
yarn add @medusajs/dashboard@2.1.4-snapshot-20250106093301
yarn add create-medusa-app@2.1.4-snapshot-20250106093301
yarn add @medusajs/cli@2.1.4-snapshot-20250106093301
yarn add medusa-dev-cli@2.1.4-snapshot-20250106093301
yarn add @medusajs/medusa-oas-cli@2.1.4-snapshot-20250106093301
yarn add @medusajs/core-flows@2.1.4-snapshot-20250106093301
yarn add @medusajs/framework@2.1.4-snapshot-20250106093301
yarn add @medusajs/js-sdk@2.1.4-snapshot-20250106093301
yarn add @medusajs/modules-sdk@2.1.4-snapshot-20250106093301
yarn add @medusajs/orchestration@2.1.4-snapshot-20250106093301
yarn add @medusajs/types@2.1.4-snapshot-20250106093301
yarn add @medusajs/utils@2.1.4-snapshot-20250106093301
yarn add @medusajs/workflows-sdk@2.1.4-snapshot-20250106093301
yarn add @medusajs/icons@2.1.4-snapshot-20250106093301
yarn add @medusajs/ui@4.0.3-snapshot-20250106093301
yarn add @medusajs/ui-preset@2.1.4-snapshot-20250106093301
yarn add @medusajs/medusa@2.1.4-snapshot-20250106093301
yarn add @medusajs/telemetry@2.1.4-snapshot-20250106093301
yarn add @medusajs/test-utils@2.1.4-snapshot-20250106093301
yarn add @medusajs/api-key@2.1.4-snapshot-20250106093301
yarn add @medusajs/auth@2.1.4-snapshot-20250106093301
yarn add @medusajs/cache-inmemory@2.1.4-snapshot-20250106093301
yarn add @medusajs/cache-redis@2.1.4-snapshot-20250106093301
yarn add @medusajs/cart@2.1.4-snapshot-20250106093301
yarn add @medusajs/currency@2.1.4-snapshot-20250106093301
yarn add @medusajs/customer@2.1.4-snapshot-20250106093301
yarn add @medusajs/event-bus-local@2.1.4-snapshot-20250106093301
yarn add @medusajs/event-bus-redis@2.1.4-snapshot-20250106093301
yarn add @medusajs/file@2.1.4-snapshot-20250106093301
yarn add @medusajs/fulfillment@2.1.4-snapshot-20250106093301
yarn add @medusajs/index@2.1.4-snapshot-20250106093301
yarn add @medusajs/inventory@2.1.4-snapshot-20250106093301
yarn add @medusajs/link-modules@2.1.4-snapshot-20250106093301
yarn add @medusajs/locking@2.1.4-snapshot-20250106093301
yarn add @medusajs/notification@2.1.4-snapshot-20250106093301
yarn add @medusajs/order@2.1.4-snapshot-20250106093301
yarn add @medusajs/payment@2.1.4-snapshot-20250106093301
yarn add @medusajs/pricing@2.1.4-snapshot-20250106093301
yarn add @medusajs/product@2.1.4-snapshot-20250106093301
yarn add @medusajs/promotion@2.1.4-snapshot-20250106093301
yarn add @medusajs/auth-emailpass@2.1.4-snapshot-20250106093301
yarn add @medusajs/auth-github@2.1.4-snapshot-20250106093301
yarn add @medusajs/auth-google@2.1.4-snapshot-20250106093301
yarn add @medusajs/file-local@2.1.4-snapshot-20250106093301
yarn add @medusajs/file-s3@2.1.4-snapshot-20250106093301
yarn add @medusajs/fulfillment-manual@2.1.4-snapshot-20250106093301
yarn add @medusajs/locking-postgres@2.1.4-snapshot-20250106093301
yarn add @medusajs/locking-redis@2.1.4-snapshot-20250106093301
yarn add @medusajs/notification-local@2.1.4-snapshot-20250106093301
yarn add @medusajs/notification-sendgrid@2.1.4-snapshot-20250106093301
yarn add @medusajs/payment-stripe@2.1.4-snapshot-20250106093301
yarn add @medusajs/region@2.1.4-snapshot-20250106093301
yarn add @medusajs/sales-channel@2.1.4-snapshot-20250106093301
yarn add @medusajs/stock-location@2.1.4-snapshot-20250106093301
yarn add @medusajs/store@2.1.4-snapshot-20250106093301
yarn add @medusajs/tax@2.1.4-snapshot-20250106093301
yarn add @medusajs/user@2.1.4-snapshot-20250106093301
yarn add @medusajs/workflow-engine-inmemory@2.1.4-snapshot-20250106093301
yarn add @medusajs/workflow-engine-redis@2.1.4-snapshot-20250106093301

Latest commit: f7ffa35

@sradevski sradevski force-pushed the feat/add-support-custom-callback-uri-oauth branch from bb98773 to dcf41bf Compare January 6, 2025 11:30
@sradevski
Copy link
Member Author

I have already done some e2e tests and things are working as expected.

Copy link
Contributor

@olivermrbl olivermrbl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member

@adrien2p adrien2p left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

few suggestions otherwise LGTM

@sradevski sradevski force-pushed the feat/add-support-custom-callback-uri-oauth branch from dcf41bf to 7273cbf Compare January 6, 2025 16:03
@sradevski sradevski merged commit fde73db into develop Jan 6, 2025
23 checks passed
@sradevski sradevski deleted the feat/add-support-custom-callback-uri-oauth branch January 6, 2025 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants