2025-02-27 19:37:31 +08:00
|
|
|
import { decodeJwt } from 'jose'
|
|
|
|
|
|
2025-03-03 16:47:59 +08:00
|
|
|
import {
|
|
|
|
|
staffTokenCookieConfig,
|
|
|
|
|
userTokenCookieConfig,
|
|
|
|
|
} from '~/libs/cookie.server'
|
2025-02-27 19:37:31 +08:00
|
|
|
|
|
|
|
|
type TTokenCookie = {
|
2025-03-12 20:46:54 +08:00
|
|
|
accessToken: string
|
2025-02-27 19:37:31 +08:00
|
|
|
}
|
|
|
|
|
|
2025-03-03 16:47:59 +08:00
|
|
|
export const generateUserTokenCookie = (parameters: TTokenCookie) => {
|
2025-03-12 20:46:54 +08:00
|
|
|
const { accessToken } = parameters
|
2025-02-27 19:37:31 +08:00
|
|
|
|
2025-03-12 20:46:54 +08:00
|
|
|
const decodedToken = decodeJwt(accessToken)
|
2025-02-27 19:37:31 +08:00
|
|
|
const decodedTokenExp = decodedToken.exp
|
|
|
|
|
const expirationDate = decodedTokenExp
|
|
|
|
|
? new Date(decodedTokenExp * 1000)
|
|
|
|
|
: undefined
|
|
|
|
|
|
2025-03-12 20:46:54 +08:00
|
|
|
return userTokenCookieConfig.serialize(accessToken, {
|
2025-02-27 19:37:31 +08:00
|
|
|
expires: expirationDate,
|
|
|
|
|
})
|
|
|
|
|
}
|
2025-03-03 16:47:59 +08:00
|
|
|
|
|
|
|
|
export const generateStaffTokenCookie = (parameters: TTokenCookie) => {
|
2025-03-12 20:46:54 +08:00
|
|
|
const { accessToken } = parameters
|
2025-03-03 16:47:59 +08:00
|
|
|
|
2025-03-12 20:46:54 +08:00
|
|
|
const decodedToken = decodeJwt(accessToken)
|
2025-03-03 16:47:59 +08:00
|
|
|
const decodedTokenExp = decodedToken.exp
|
|
|
|
|
const expirationDate = decodedTokenExp
|
|
|
|
|
? new Date(decodedTokenExp * 1000)
|
|
|
|
|
: undefined
|
|
|
|
|
|
2025-03-12 20:46:54 +08:00
|
|
|
return staffTokenCookieConfig.serialize(accessToken, {
|
2025-03-03 16:47:59 +08:00
|
|
|
expires: expirationDate,
|
|
|
|
|
})
|
|
|
|
|
}
|