@shopify/shopify-app-session-storage-postgresql
v6.0.0
Published
Shopify App Session Storage for PostgreSQL
Readme
Session Storage Adapter for PostgreSQL
This package implements the SessionStorage interface that works with an instance of PostgreSQL.
Tested using PostgreSQL v15
import {shopifyApp} from '@shopify/shopify-app-express';
import {PostgreSQLSessionStorage} from '@shopify/shopify-app-session-storage-postgresql';
const shopify = shopifyApp({
sessionStorage: new PostgreSQLSessionStorage(
'postgres://username:password@host/database',
),
// ...
});
// OR
const shopify = shopifyApp({
sessionStorage: new PostgreSQLSessionStorage(
new URL('postgres://username:password@host/database'),
),
// ...
});
// OR
const shopify = shopifyApp({
sessionStorage: PostgreSQLSessionStorage.withCredentials(
'host.com',
'thedatabase',
'username',
'password',
),
// ...
});Expiring Offline Access Tokens
This storage adapter supports expiring offline access tokens. When enabled, the adapter automatically stores and retrieves refresh tokens alongside your session data.
To enable this feature, set the expiringOfflineAccessTokens future flag in your app configuration:
const shopify = shopifyApp({
sessionStorage: new PostgreSQLSessionStorage(
'postgres://username:password@host/database',
),
future: {
expiringOfflineAccessTokens: true,
},
// ... other config
});The required database columns (refreshToken and refreshTokenExpires) are added automatically via the built-in migration system. For details, see the migration guide.
If you prefer to use your own implementation of a session storage mechanism that is compatible with the @shopify/shopify-app-express package, see the implementing session storage guide.
