Files
remark42/frontend/app/components/auth/auth.utils.ts
T

44 lines
1.2 KiB
TypeScript

import { isJwtExpired } from 'utils/jwt';
import { StaticStore } from 'common/static-store';
import type { FormProvider, OAuthProvider } from 'common/types';
import { OAUTH_PROVIDERS } from './components/oauth.consts';
import { messages } from './auth.messsages';
import { setItem, getItem } from 'common/local-storage';
import { LS_EMAIL_KEY } from 'common/constants';
export function getProviders(): [OAuthProvider[], FormProvider[]] {
const oauthProviders: OAuthProvider[] = [];
const formProviders: FormProvider[] = [];
StaticStore.config.auth_providers.forEach((p) => {
OAUTH_PROVIDERS.includes(p) ? oauthProviders.push(p as OAuthProvider) : formProviders.push(p as FormProvider);
});
return [oauthProviders, formProviders];
}
export function getTokenInvalidReason(token: string): null | keyof typeof messages {
try {
if (isJwtExpired(token)) {
return 'expiredToken';
}
} catch (e) {
return 'invalidToken';
}
return null;
}
export function persistEmail(email: string) {
setItem(LS_EMAIL_KEY, email);
}
export function getPersistedEmail() {
return getItem(LS_EMAIL_KEY) || '';
}
export function resetPersistedEmail() {
setItem(LS_EMAIL_KEY, '');
}