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: Add support for refreshing JWT tokens #9013

Merged
merged 2 commits into from
Sep 6, 2024

Conversation

sradevski
Copy link
Member

@sradevski sradevski commented Sep 5, 2024

This is useful in few scenarios, namely:

  1. When doing oauth, after creating a user, we want to immediately refresh the JWT token so it has the actor ID populated
  2. You don't want people to have to re-login every day, so you can implement a token refresh eg. every time your site is visited, as long as the expiresIn hasn't passed.

CLOSES CC-425

@sradevski sradevski requested a review from a team as a code owner September 5, 2024 09:25
Copy link

vercel bot commented Sep 5, 2024

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

Name Status Preview Comments Updated (UTC)
medusa-dashboard ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 6, 2024 10:41am
6 Skipped Deployments
Name Status Preview Comments Updated (UTC)
api-reference ⬜️ Ignored (Inspect) Sep 6, 2024 10:41am
api-reference-v2 ⬜️ Ignored (Inspect) Visit Preview Sep 6, 2024 10:41am
docs-ui ⬜️ Ignored (Inspect) Visit Preview Sep 6, 2024 10:41am
docs-v2 ⬜️ Ignored (Inspect) Visit Preview Sep 6, 2024 10:41am
medusa-docs ⬜️ Ignored (Inspect) Visit Preview Sep 6, 2024 10:41am
resources-docs ⬜️ Ignored (Inspect) Visit Preview Sep 6, 2024 10:41am

Copy link

changeset-bot bot commented Sep 5, 2024

⚠️ No Changeset found

Latest commit: d6f4dad

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

@olivermrbl I think this will cause some merge conflicts with your reset password PR, apologies for that :)

@riqwan
Copy link
Contributor

riqwan commented Sep 5, 2024

q: if a token is refreshed 3 times, will all 3 tokens be valid if they're not expired yet?

@shahednasser
Copy link
Member

shahednasser commented Sep 5, 2024

@sradevski does this add a last step in the third-party authentication flow to send a request to /auth/token/refresh?

Copy link
Contributor

@riqwan riqwan left a comment

Choose a reason for hiding this comment

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

Added one question in there for a scenario

@sradevski
Copy link
Member Author

@sradevski does this add a last step in the third-party authentication flow to send a request to /auth/token/refresh?

Yes @shahednasser , the code will look like this:

const token = await sdk.auth.callback(code..)
const user = await sdk.user.create(...., {token})
await sdk.auth.refresh()

(obviously it's pseudocode-ish)

@sradevski
Copy link
Member Author

/snapshot-this

Copy link
Contributor

github-actions bot commented Sep 5, 2024

🚀 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@0.0.2-snapshot-20240905140403
yarn add @medusajs/admin-sdk@0.0.2-snapshot-20240905140403
yarn add @medusajs/admin-shared@0.0.2-snapshot-20240905140403
yarn add @medusajs/admin-vite-plugin@0.0.2-snapshot-20240905140403
yarn add @medusajs/dashboard@0.0.2-snapshot-20240905140403
yarn add create-medusa-app@1.2.9-snapshot-20240905140403
yarn add @medusajs/medusa-cli@1.3.23-snapshot-20240905140403
yarn add medusa-dev-cli@0.0.33-snapshot-20240905140403
yarn add @medusajs/medusa-oas-cli@1.0.0-snapshot-20240905140403
yarn add @medusajs/core-flows@0.0.10-snapshot-20240905140403
yarn add @medusajs/js-sdk@0.0.2-snapshot-20240905140403
yarn add medusa-test-utils@1.1.45-snapshot-20240905140403
yarn add @medusajs/modules-sdk@1.13.0-snapshot-20240905140403
yarn add @medusajs/orchestration@0.5.8-snapshot-20240905140403
yarn add @medusajs/types@1.12.0-snapshot-20240905140403
yarn add @medusajs/utils@1.12.0-snapshot-20240905140403
yarn add @medusajs/workflows-sdk@0.1.7-snapshot-20240905140403
yarn add @medusajs/icons@1.2.2-snapshot-20240905140403
yarn add @medusajs/ui@3.0.1-snapshot-20240905140403
yarn add @medusajs/ui-preset@1.1.4-snapshot-20240905140403
yarn add @medusajs/framework@0.0.2-snapshot-20240905140403
yarn add @medusajs/medusa@1.20.6-snapshot-20240905140403
yarn add medusa-telemetry@0.0.18-snapshot-20240905140403
yarn add @medusajs/api-key@0.1.3-snapshot-20240905140403
yarn add @medusajs/auth@0.0.4-snapshot-20240905140403
yarn add @medusajs/cache-inmemory@1.8.11-snapshot-20240905140403
yarn add @medusajs/cache-redis@1.9.2-snapshot-20240905140403
yarn add @medusajs/cart@0.0.4-snapshot-20240905140403
yarn add @medusajs/currency@0.1.3-snapshot-20240905140403
yarn add @medusajs/customer@0.0.4-snapshot-20240905140403
yarn add @medusajs/event-bus-local@1.9.9-snapshot-20240905140403
yarn add @medusajs/event-bus-redis@1.8.14-snapshot-20240905140403
yarn add @medusajs/file@0.0.2-snapshot-20240905140403
yarn add @medusajs/fulfillment@0.1.3-snapshot-20240905140403
yarn add @medusajs/inventory-next@0.0.4-snapshot-20240905140403
yarn add @medusajs/link-modules@0.2.12-snapshot-20240905140403
yarn add @medusajs/notification@0.1.3-snapshot-20240905140403
yarn add @medusajs/order@0.1.3-snapshot-20240905140403
yarn add @medusajs/payment@0.0.4-snapshot-20240905140403
yarn add @medusajs/pricing@0.1.13-snapshot-20240905140403
yarn add @medusajs/product@0.3.13-snapshot-20240905140403
yarn add @medusajs/promotion@0.0.5-snapshot-20240905140403
yarn add @medusajs/auth-emailpass@0.0.2-snapshot-20240905140403
yarn add @medusajs/auth-github@0.0.2-snapshot-20240905140403
yarn add @medusajs/auth-google@0.0.2-snapshot-20240905140403
yarn add @medusajs/file-local-next@0.0.3-snapshot-20240905140403
yarn add @medusajs/file-s3@0.0.3-snapshot-20240905140403
yarn add @medusajs/fulfillment-manual@0.0.3-snapshot-20240905140403
yarn add @medusajs/notification-local@0.0.2-snapshot-20240905140403
yarn add @medusajs/notification-sendgrid@0.0.2-snapshot-20240905140403
yarn add @medusajs/payment-stripe@0.0.3-snapshot-20240905140403
yarn add @medusajs/region@0.1.2-snapshot-20240905140403
yarn add @medusajs/sales-channel@0.1.2-snapshot-20240905140403
yarn add @medusajs/stock-location-next@0.0.4-snapshot-20240905140403
yarn add @medusajs/store@0.1.2-snapshot-20240905140403
yarn add @medusajs/tax@0.1.2-snapshot-20240905140403
yarn add @medusajs/user@0.0.4-snapshot-20240905140403
yarn add @medusajs/workflow-engine-inmemory@0.0.5-snapshot-20240905140403
yarn add @medusajs/workflow-engine-redis@0.0.5-snapshot-20240905140403

Latest commit: c27aa46

@sradevski sradevski force-pushed the feat/add-token-refresh-endpoint branch from 7e26227 to d73f4c5 Compare September 6, 2024 10:31
@olivermrbl
Copy link
Contributor

Nice work, no immediate comments 👍

@sradevski sradevski force-pushed the feat/add-token-refresh-endpoint branch from d73f4c5 to d6f4dad Compare September 6, 2024 10:39
@sradevski sradevski merged commit 62e0c59 into develop Sep 6, 2024
23 checks passed
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.

4 participants