2021-12-31 04:17:00 +00:00
|
|
|
// 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 07:17:39 +00:00
|
|
|
|
2021-12-31 08:56:18 +00:00
|
|
|
return {
|
2021-12-31 04:17:00 +00:00
|
|
|
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
|
|
|
}
|