zioinfo-mail/workspace/guardia-messenger/hooks/useBiometric.ts
DESKTOP-TKLFCPR\ython 777e027553 refactor(structure): move app -> workspace/guardia-messenger
Permission denied on git mv, used robocopy instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 23:53:57 +09:00

26 lines
856 B
TypeScript

import * as LocalAuth from 'expo-local-authentication'
export async function isBiometricAvailable(): Promise<boolean> {
const hasHardware = await LocalAuth.hasHardwareAsync()
const isEnrolled = await LocalAuth.isEnrolledAsync()
return hasHardware && isEnrolled
}
export async function authenticateWithBiometric(
promptMessage = 'GUARDiA 로그인'
): Promise<{ success: boolean; error?: string }> {
const available = await isBiometricAvailable()
if (!available) return { success: false, error: '생체인증을 사용할 수 없습니다.' }
const result = await LocalAuth.authenticateAsync({
promptMessage,
cancelLabel: '취소',
fallbackLabel: '비밀번호 사용',
disableDeviceFallback: false,
})
return result.success
? { success: true }
: { success: false, error: result.error ?? '인증 실패' }
}