mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 18:44:16 +00:00
use createTokenRegeneration
This commit is contained in:
parent
7d45d039e1
commit
d0003ca7f2
@ -1,5 +1,6 @@
|
|||||||
import { Session, User, authorizedServerTokens } from "@shared-classes/DbModels"
|
import { Session, User, authorizedServerTokens } from "@shared-classes/DbModels"
|
||||||
import { Token } from "@lib"
|
|
||||||
|
import createTokenRegeneration from "@utils/createTokenRegeneration"
|
||||||
|
|
||||||
import SecureEntry from "@lib/secureEntry"
|
import SecureEntry from "@lib/secureEntry"
|
||||||
|
|
||||||
@ -57,29 +58,12 @@ export default async (req, res, next) => {
|
|||||||
return reject("Invalid token, cannot regenerate")
|
return reject("Invalid token, cannot regenerate")
|
||||||
}
|
}
|
||||||
|
|
||||||
let regenerationToken = null
|
const refreshToken = await createTokenRegeneration(token)
|
||||||
|
|
||||||
// check if this expired token has a regeneration token associated
|
|
||||||
const associatedRegenerationToken = await Token.getRegenerationToken(token)
|
|
||||||
|
|
||||||
if (associatedRegenerationToken) {
|
|
||||||
regenerationToken = associatedRegenerationToken.refreshToken
|
|
||||||
} else {
|
|
||||||
// create a new regeneration token with the expired token
|
|
||||||
regenerationToken = await Token.createNewRegenerationToken(token).catch((error) => {
|
|
||||||
// in case of error, reject
|
|
||||||
reject(error.message)
|
|
||||||
|
|
||||||
return null
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!regenerationToken) return
|
|
||||||
|
|
||||||
// now send the regeneration token to the client (start Expired Exception Event [EEE])
|
// now send the regeneration token to the client (start Expired Exception Event [EEE])
|
||||||
return res.status(401).json({
|
return res.status(401).json({
|
||||||
error: "Token expired",
|
error: "Token expired",
|
||||||
refreshToken: regenerationToken.refreshToken,
|
refreshToken: refreshToken,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
17
packages/server/src/utils/createTokenRegeneration/index.js
Normal file
17
packages/server/src/utils/createTokenRegeneration/index.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { Token } from "@lib"
|
||||||
|
|
||||||
|
export default async (expiredToken) => {
|
||||||
|
let regenerationToken = null
|
||||||
|
|
||||||
|
// check if this expired token has a regeneration token associated
|
||||||
|
const associatedRegenerationToken = await Token.getRegenerationToken(expiredToken)
|
||||||
|
|
||||||
|
if (associatedRegenerationToken) {
|
||||||
|
regenerationToken = associatedRegenerationToken.refreshToken
|
||||||
|
} else {
|
||||||
|
// create a new regeneration token with the expired token
|
||||||
|
regenerationToken = await Token.createNewRegenerationToken(expiredToken)
|
||||||
|
}
|
||||||
|
|
||||||
|
return regenerationToken.refreshToken
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user