onedrive/utils/odAuthTokenStore.ts

35 lines
1 KiB
TypeScript
Raw Normal View History

// This should be only used on the server side, where the tokens are stored with KV store using
// a file system based storage. The tokens are stored in the file system as JSON at /tmp path.
import Keyv from 'keyv'
2021-12-31 12:03:17 +00:00
// Persistent key-value store is provided by Redis, hosted on Upstash
// https://vercel.com/integrations/upstash
console.log(process.env.REDIS_URL)
const kv = new Keyv(process.env.REDIS_URL)
kv.on('error', err => console.log('Connection Error', err))
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:03:17 +00:00
await kv.set('access_token', accessToken, accessTokenExpiry)
await kv.set('refresh_token', refreshToken)
2021-12-31 08:56:18 +00:00
}