Merge pull request 'example frontend-backend communication' (#37) from backend_complete into main

Reviewed-on: #37
This commit was merged in pull request #37.
This commit is contained in:
2025-09-24 18:21:05 +00:00
12 changed files with 405 additions and 26 deletions
@@ -11,8 +11,8 @@ import { Response } from 'express';
export interface LoginResponse {
user: ShortUserDto;
token: string;
refreshToken: string;
token?: string;
refreshToken?: string;
requiresOrgReauth?: boolean;
orgLoginUrl?: string;
organizationName?: string;
@@ -114,10 +114,12 @@ export class LoginCommandHandler {
const responseObj = res || mockRes;
// Check if client prefers Bearer token authentication
const prefersBearerAuth = res && (
const isWebClient = res?.req?.headers['origin'] || res?.req?.headers['referer'];
const explicitBearerRequest = res?.req?.headers['x-auth-method'] === 'bearer';
const prefersBearerAuth = res && !isWebClient && (
res.req?.headers['authorization'] !== undefined ||
res.req?.headers['x-auth-method'] === 'bearer' ||
res.req?.headers['accept']?.includes('application/json')
explicitBearerRequest
);
let tokenPair: any;
@@ -168,12 +170,19 @@ export class LoginCommandHandler {
organizationName,
totalLoginTime: Date.now() - startTime
});
const response: LoginResponse = {
user: UserMapper.toShortDto(user),
token: tokenPair.accessToken,
refreshToken: tokenPair.refreshToken
};
let response: LoginResponse;
if (prefersBearerAuth){
response = {
user: UserMapper.toShortDto(user),
token: tokenPair.accessToken,
refreshToken: tokenPair.refreshToken
};
}
else {
response = {
user: UserMapper.toShortDto(user)
};
}
if (requiresOrgReauth) {
response.requiresOrgReauth = true;