onedrive/utils/odAuthTokenStore.ts

29 lines
754 B
TypeScript
Raw Normal View History

2021-12-31 12:30:29 +00:00
import Redis from 'ioredis'
2021-12-31 12:03:17 +00:00
// Persistent key-value store is provided by Redis, hosted on Upstash
// https://vercel.com/integrations/upstash
2021-12-31 12:30:29 +00:00
const kv = new Redis(process.env.REDIS_URL)
2021-12-31 12:03:17 +00:00
export async function getOdAuthTokens(): Promise<{ accessToken: unknown; refreshToken: unknown }> {
const accessToken = await kv.get('access_token')
const refreshToken = await kv.get('refresh_token')
2021-12-31 08:56:18 +00:00
return {
accessToken,
refreshToken,
}
}
2021-12-31 08:56:18 +00:00
export async function storeOdAuthTokens({
accessToken,
accessTokenExpiry,
refreshToken,
}: {
accessToken: string
accessTokenExpiry: number
refreshToken: string
}): Promise<void> {
2021-12-31 12:30:29 +00:00
await kv.set('access_token', accessToken, 'ex', accessTokenExpiry)
2021-12-31 12:03:17 +00:00
await kv.set('refresh_token', refreshToken)
2021-12-31 08:56:18 +00:00
}