update widget token mail 8

This commit is contained in:
Alma 2025-04-09 23:36:12 +02:00
parent 4ac8ee20eb
commit 5c1a525fd4

View File

@ -19,13 +19,51 @@ export async function GET() {
return NextResponse.json({ error: "No access token found" }, { status: 401 });
}
// First, get user info using the OAuth token with additional headers
// First get the username from Keycloak
const keycloakResponse = await fetch(
`${process.env.KEYCLOAK_BASE_URL}/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/userinfo`,
{
headers: {
'Authorization': `Bearer ${session.accessToken}`
}
}
);
if (!keycloakResponse.ok) {
console.error('Failed to get Keycloak user info:', {
status: keycloakResponse.status,
statusText: keycloakResponse.statusText,
response: await keycloakResponse.text().catch(() => 'Could not get response text')
});
return NextResponse.json(
{ error: "Failed to get user info from Keycloak" },
{ status: keycloakResponse.status }
);
}
const keycloakUser = await keycloakResponse.json();
const username = keycloakUser.preferred_username;
console.log('Keycloak user info:', {
username,
sub: keycloakUser.sub
});
if (!username) {
return NextResponse.json(
{ error: "No username found in Keycloak user info" },
{ status: 400 }
);
}
// Now get user info from Rocket.Chat using the Keycloak username
const meResponse = await fetch('https://parole.slm-lab.net/api/v1/me', {
headers: {
'Authorization': `Bearer ${session.accessToken}`,
'X-Auth-Token': session.accessToken,
'X-User-Id': session.user.id,
'X-Oauth-User': session.user.username || session.user.email?.split('@')[0] || '',
'X-User-Id': keycloakUser.sub,
'X-Oauth-User': username,
'X-OAuth-Username': username
},
cache: 'no-store',
});
@ -35,7 +73,8 @@ export async function GET() {
status: meResponse.status,
statusText: meResponse.statusText,
headers: {
'X-Oauth-User': session.user.username || session.user.email?.split('@')[0] || '',
'X-Oauth-User': username,
'X-OAuth-Username': username,
'Authorization': 'Bearer [hidden]'
},
response: await meResponse.text().catch(() => 'Could not get response text')
@ -60,7 +99,8 @@ export async function GET() {
'Authorization': `Bearer ${session.accessToken}`,
'X-Auth-Token': session.accessToken,
'X-User-Id': userData._id,
'X-Oauth-User': userData.username,
'X-Oauth-User': username,
'X-OAuth-Username': username
},
cache: 'no-store',
}
@ -95,7 +135,8 @@ export async function GET() {
'Authorization': `Bearer ${session.accessToken}`,
'X-Auth-Token': session.accessToken,
'X-User-Id': userData._id,
'X-Oauth-User': userData.username,
'X-Oauth-User': username,
'X-OAuth-Username': username
},
cache: 'no-store',
}