@qelos/auth
Version:
Express Passport authentication service
32 lines (31 loc) • 1.14 kB
text/typescript
import { callContentService } from './content-service-api';
import { cacheManager } from './cache-manager';
import { IAuthConfigurationMetadata } from '@qelos/global-types';
export async function getAuthConfiguration(tenant: string): Promise<IAuthConfigurationMetadata> {
return cacheManager.wrap('auth-configuration:' + tenant, async () => {
let value: any;
try {
const config = await callContentService('/internal-api/configurations/auth-configuration', tenant);
value = config.metadata || {
treatUsernameAs: 'email',
formPosition: 'right',
showLoginPage: true,
showRegisterPage: false,
allowSocialAutoRegistration: true,
additionalUserFields: [],
socialLoginsSources: {},
};
} catch {
value = {
treatUsernameAs: 'email',
formPosition: 'right',
showLoginPage: true,
showRegisterPage: false,
allowSocialAutoRegistration: true,
additionalUserFields: [],
socialLoginsSources: {},
};
}
return JSON.stringify(value);
}, { ttl: 60 * 5 /* 5 minutes */ }).then(JSON.parse);
}