Session
AirBadge adds extra attributes to the session.
These are useful for building conditional logic based on the subscription
and plan
.
They are available on both the client and server.
Attributes
Attribute | Function |
---|---|
customerId | The user’s Stripe customer id. |
purchases | An array of the user’s past purchases. Contains price_id , product_id , and lookup_key . |
subscription.id | The user’s subscription id. |
subscription.status | The current status of the subscription. |
subscription.plan | The lookup key of the Stripe price. Example: pro_monthly or basic_yearly |
subscription.priceId | The Stripe price id of the plan. Example: price_1234 |
Server-side
To get session data on the server-side, use locals.getSession()
:
// +page.server.js
export async function load({ locals }) {
const session = await locals.getSession()
}
Client-side
On the client side, use the data
prop:
<!-- +page.svelte -->
<script>
export let data
</script>
<pre>{data.session}</pre>
Example
This what session data would look like:
{
"id": "1234",
"sessionToken": "uuid",
"userId": "1234",
"expires": "2024-03-11T15:01:35.933Z",
"user": {
"id": "1234",
"name": "Joshua Nussbaum",
"email": "user@example.com",
"emailVerified": null,
"image": "https://avatars.githubusercontent.com/u/###"
},
"customerId": "cus_1234",
"subscription": {
"id": "sub_1234",
"status": "active",
"priceId": "price_1234",
"plan": "basic_monthly"
},
"purchases": [
"price_1234",
"prod_1234",
"e-book"
]
}