@guardian/pan-domain-node
Version:
NodeJs implementation of Guardian pan-domain auth verification
31 lines (26 loc) • 776 B
text/typescript
export { PanDomainAuthentication } from './panda';
export enum AuthenticationStatus {
INVALID_COOKIE = 'Invalid Cookie',
EXPIRED = 'Expired',
NOT_AUTHORISED = 'Not Authorised',
AUTHORISED = 'Authorised'
}
export interface User {
firstName: string,
lastName: string,
email: string,
avatarUrl?: string,
authenticatingSystem: string,
authenticatedIn: string[],
expires: number,
multifactor: boolean
}
export interface AuthenticationResult {
status: AuthenticationStatus,
user?: User
}
export type ValidateUserFn = (user: User) => boolean;
export function guardianValidation(user: User): boolean {
const isGuardianUser = user.email.indexOf('guardian.co.uk') !== -1;
return isGuardianUser && user.multifactor;
}