Skip to content

Commit 12f9394

Browse files
authored
Update package.json dependencies and add refresh token fields to Session model (#151)
### WHY are these changes introduced? Adds support for refresh tokens in the Prisma session storage schema. ### WHAT is this pull request doing? - Updates the Prisma schema to include `refreshToken` and `refreshTokenExpires` fields in the Session model - Modifies the migration SQL to include these new fields - Points package dependencies to local development versions for testing ### Test this PR ```bash shopify app init --template=https://github.com/Shopify/shopify-app-template-react-router#<your-branch-name> ``` ### Checklist - [x] I have made changes to the `README.md` file and other related documentation, if applicable - [x] I have added an entry to `CHANGELOG.md` - [x] I'm aware I need to create a new release when this PR is merged
2 parents fa10377 + 7a42eec commit 12f9394

5 files changed

Lines changed: 14 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# @shopify/shopify-app-template-react-router
22

3+
## 2025.12.11
4+
5+
- [#151](https://github.com/Shopify/shopify-app-template-react-router/pull/151) Update `@shopify/shopify-app-react-router` to v1.1.0 and `@shopify/shopify-app-session-storage-prisma` to v8.0.0, add refresh token fields (`refreshToken` and `refreshTokenExpires`) to Session model in Prisma schema, and adopt the `expiringOfflineAccessTokens` flag for enhanced security through token rotation. See [expiring vs non-expiring offline tokens](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/offline-access-tokens#expiring-vs-non-expiring-offline-tokens) for more information.
6+
37
## 2025.10.10
48

59
- [#95](https://github.com/Shopify/shopify-app-template-react-router/pull/95) Swap the product link for [admin intents](https://shopify.dev/docs/apps/build/admin/admin-intents).

app/shopify.server.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ const shopify = shopifyApp({
1616
authPathPrefix: "/auth",
1717
sessionStorage: new PrismaSessionStorage(prisma),
1818
distribution: AppDistribution.AppStore,
19+
future: {
20+
expiringOfflineAccessTokens: true,
21+
},
1922
...(process.env.SHOP_CUSTOM_DOMAIN
2023
? { customShopDomains: [process.env.SHOP_CUSTOM_DOMAIN] }
2124
: {}),

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
"@react-router/node": "^7.9.3",
3131
"@react-router/serve": "^7.9.3",
3232
"@shopify/app-bridge-react": "^4.2.4",
33-
"@shopify/shopify-app-react-router": "^1.0.0",
34-
"@shopify/shopify-app-session-storage-prisma": "^7.0.0",
33+
"@shopify/shopify-app-react-router": "^1.1.0",
34+
"@shopify/shopify-app-session-storage-prisma": "^8.0.0",
3535
"isbot": "^5.1.31",
3636
"prisma": "^6.16.3",
3737
"react": "^18.3.1",

prisma/migrations/20240530213853_create_session_table/migration.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,7 @@ CREATE TABLE "Session" (
1414
"accountOwner" BOOLEAN NOT NULL DEFAULT false,
1515
"locale" TEXT,
1616
"collaborator" BOOLEAN DEFAULT false,
17-
"emailVerified" BOOLEAN DEFAULT false
17+
"emailVerified" BOOLEAN DEFAULT false,
18+
"refreshToken" TEXT,
19+
"refreshTokenExpires" DATETIME
1820
);

prisma/schema.prisma

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,6 @@ model Session {
2929
locale String?
3030
collaborator Boolean? @default(false)
3131
emailVerified Boolean? @default(false)
32+
refreshToken String?
33+
refreshTokenExpires DateTime?
3234
}

0 commit comments

Comments
 (0)