1
0
mirror of https://github.com/sasjs/server.git synced 2026-01-11 16:20:06 +00:00

fix: return same tokens if not expired

This commit is contained in:
2022-09-21 22:12:03 +05:00
parent a810f6c7cf
commit 330c020933
4 changed files with 52 additions and 1 deletions

View File

@@ -0,0 +1,40 @@
import jwt from 'jsonwebtoken'
import User from '../model/User'
export const getTokensFromDB = async (userId: number, clientId: string) => {
const user = await User.findOne({ id: userId })
if (!user) return
const currentTokenObj = user.tokens.find(
(tokenObj: any) => tokenObj.clientId === clientId
)
if (currentTokenObj) {
const accessToken = currentTokenObj.accessToken
const refreshToken = currentTokenObj.refreshToken
const verifiedAccessToken: any = jwt.verify(
accessToken,
process.secrets.ACCESS_TOKEN_SECRET
)
const verifiedRefreshToken: any = jwt.verify(
refreshToken,
process.secrets.REFRESH_TOKEN_SECRET
)
if (
verifiedAccessToken?.userId !== userId ||
verifiedAccessToken?.clientId !== clientId
)
return
if (
verifiedRefreshToken?.userId !== userId ||
verifiedRefreshToken?.clientId !== clientId
)
return
return { accessToken, refreshToken }
}
}