🐛 (refresh) refresh correct token

This commit is contained in:
Julien Calixte
2021-05-02 18:33:46 +02:00
parent 56432d81c8
commit d33fa18b9c
5 changed files with 64 additions and 37 deletions

View File

@@ -0,0 +1,37 @@
import { useGitHubLogin } from '@/hooks/useGitHubLogin.hook'
import { needToRefreshToken, refreshToken } from '@/modules/user/service/signIn'
import { Octokit } from '@octokit/rest'
let refreshingToken = false
let octokit = new Octokit()
const sleep = async (ms: number) => {
return new Promise((resolve) => setTimeout(resolve, ms))
}
export const getOctokit = async (): Promise<Octokit> => {
const { accessToken } = useGitHubLogin()
octokit = new Octokit({
auth: accessToken.value
})
if (refreshingToken) {
await sleep(100)
return getOctokit()
}
if (!refreshingToken) {
refreshingToken = true
if (await needToRefreshToken()) {
const accessToken = await refreshToken()
if (accessToken) {
octokit = new Octokit({
auth: accessToken?.token
})
}
}
refreshingToken = false
}
return octokit
}