export function getLoginRoute() {
return async function login(
req: Request<{ email: string; password: string; }>,
res: Response,
): Promise<Response<{ sessionId: string } | undefined>> {
const fields = req.body ?? {}
ensureValidArgs(fields)
const providerId = createProviderId("email", fields.email)
const authIdentity = await findAuthIdentity(providerId)
if (!authIdentity) {
throw createInvalidCredentialsError()
}
const providerData = getProviderDataWithPassword<'email'>(authIdentity.providerData)
if (!providerData.isEmailVerified) {
throw createInvalidCredentialsError() // CAN THIS BE CHANGED
}
try {
await verifyPassword(providerData.hashedPassword, fields.password);
} catch(e) {
throw createInvalidCredentialsError()
}
export function getLoginRoute() {
return async function login(
req: Request<{ email: string; password: string; }>,
res: Response,
): Promise<Response<{ sessionId: string } | undefined>> {
const fields = req.body ?? {}
ensureValidArgs(fields)
const providerId = createProviderId("email", fields.email)
const authIdentity = await findAuthIdentity(providerId)
if (!authIdentity) {
throw createInvalidCredentialsError()
}
const providerData = getProviderDataWithPassword<'email'>(authIdentity.providerData)
if (!providerData.isEmailVerified) {
throw createInvalidCredentialsError() // CAN THIS BE CHANGED
}
try {
await verifyPassword(providerData.hashedPassword, fields.password);
} catch(e) {
throw createInvalidCredentialsError()
}