major: Rename legalconsenthub to gremiumhub
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
import type { H3Event } from 'h3'
|
||||
import { joinURL } from 'ufo'
|
||||
import { jwtDecode } from 'jwt-decode'
|
||||
import { createLogger } from '~~/shared/utils/logger'
|
||||
|
||||
export default defineEventHandler(async (event: H3Event) => {
|
||||
const { serverApiBaseUrl, clientProxyBasePath } = useRuntimeConfig().public
|
||||
const logger = createLogger({
|
||||
level: useRuntimeConfig().public.logLevel,
|
||||
tag: '🔀 proxy'
|
||||
})
|
||||
const escapedClientProxyBasePath = clientProxyBasePath.replace(/^\//, '\\/')
|
||||
// Use the escaped value in the regex
|
||||
const path = event.path.replace(new RegExp(`^${escapedClientProxyBasePath}`), '')
|
||||
const target = joinURL(serverApiBaseUrl, path)
|
||||
|
||||
const session = await getUserSession(event)
|
||||
const accessToken = session?.jwt?.accessToken
|
||||
|
||||
if (!accessToken && event.path !== '/api/actuator/health') {
|
||||
throw createError({
|
||||
statusCode: 401,
|
||||
statusMessage: 'Not authenticated'
|
||||
})
|
||||
}
|
||||
|
||||
if (accessToken) {
|
||||
logger.debug('Expiration:', new Date(jwtDecode(accessToken).exp! * 1000).toISOString())
|
||||
}
|
||||
logger.debug('Proxying request to:', target)
|
||||
|
||||
return proxyRequest(event, target, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${accessToken}`
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -1,43 +0,0 @@
|
||||
import type { OAuthTokenResponse } from '~~/types/oAuth'
|
||||
|
||||
export default eventHandler(async (event) => {
|
||||
const config = useRuntimeConfig()
|
||||
const session = await getUserSession(event)
|
||||
if (!session.jwt?.accessToken && !session.jwt?.refreshToken) {
|
||||
throw createError({
|
||||
statusCode: 401,
|
||||
message: 'Unauthorized'
|
||||
})
|
||||
}
|
||||
|
||||
try {
|
||||
const { access_token, refresh_token } = await $fetch<OAuthTokenResponse>(config.public.keycloakTokenUrl, {
|
||||
method: 'POST',
|
||||
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
||||
body: new URLSearchParams({
|
||||
grant_type: 'refresh_token',
|
||||
client_id: config.oauth.keycloak.clientId,
|
||||
client_secret: config.oauth.keycloak.clientSecret,
|
||||
refresh_token: session.jwt.refreshToken
|
||||
}).toString()
|
||||
})
|
||||
|
||||
await setUserSession(event, {
|
||||
jwt: {
|
||||
accessToken: access_token,
|
||||
refreshToken: refresh_token || session.jwt.refreshToken
|
||||
},
|
||||
loggedInAt: Date.now()
|
||||
})
|
||||
|
||||
return {
|
||||
accessToken: access_token,
|
||||
refreshToken: refresh_token || session.jwt.refreshToken
|
||||
}
|
||||
} catch {
|
||||
throw createError({
|
||||
statusCode: 401,
|
||||
message: 'refresh token is invalid'
|
||||
})
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user