forked from baron/baron-sso
SMS 인증 코드 발송 및 검증 UI/로직 연동
This commit is contained in:
@@ -74,6 +74,25 @@ class AuthProxyService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<Map<String, dynamic>> verifySmsCode(String phoneNumber, String code) async {
|
||||||
|
final url = Uri.parse('$_baseUrl/api/v1/auth/verify-sms');
|
||||||
|
|
||||||
|
final response = await http.post(
|
||||||
|
url,
|
||||||
|
headers: {'Content-Type': 'application/json'},
|
||||||
|
body: jsonEncode({
|
||||||
|
'phoneNumber': phoneNumber,
|
||||||
|
'code': code,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (response.statusCode == 200) {
|
||||||
|
return jsonDecode(response.body);
|
||||||
|
} else {
|
||||||
|
throw Exception('Failed to verify code: ${response.body}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static Future<void> logError(String message) async {
|
static Future<void> logError(String message) async {
|
||||||
final url = Uri.parse('$_baseUrl/api/v1/client-log');
|
final url = Uri.parse('$_baseUrl/api/v1/client-log');
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -235,19 +235,35 @@ class _LoginScreenState extends ConsumerState<LoginScreen>
|
|||||||
final phone = _phoneController.text.trim();
|
final phone = _phoneController.text.trim();
|
||||||
if (phone.isEmpty) return;
|
if (phone.isEmpty) return;
|
||||||
|
|
||||||
|
print("[Frontend] SMS 코드 발송 시작. 번호: $phone");
|
||||||
try {
|
try {
|
||||||
await AuthProxyService.sendSms(phone);
|
await AuthProxyService.sendSms(phone);
|
||||||
|
print("[Frontend] SMS 코드 발송 요청 성공.");
|
||||||
setState(() {
|
setState(() {
|
||||||
_smsSent = true;
|
_smsSent = true;
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
print("[Frontend] SMS 코드 발송 요청 실패: $e");
|
||||||
_showError("Failed to send SMS: $e");
|
_showError("Failed to send SMS: $e");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _handleSmsVerification() async {
|
Future<void> _handleSmsVerification() async {
|
||||||
// For now, just show a success message
|
final phone = _phoneController.text.trim();
|
||||||
_showSuccessDialog();
|
final code = _smsCodeController.text.trim();
|
||||||
|
if (phone.isEmpty || code.isEmpty) return;
|
||||||
|
|
||||||
|
print("[Frontend] SMS 코드 검증 시작. 번호: $phone, 코드: $code");
|
||||||
|
try {
|
||||||
|
final result = await AuthProxyService.verifySmsCode(phone, code);
|
||||||
|
final token = result['token'];
|
||||||
|
print("[Frontend] SMS 코드 검증 성공. JWT 수신: $token");
|
||||||
|
// TODO: Handle the JWT token from the result, e.g., result['token']
|
||||||
|
_showSuccessDialog();
|
||||||
|
} catch (e) {
|
||||||
|
print("[Frontend] SMS 코드 검증 실패: $e");
|
||||||
|
_showError("Failed to verify code: $e");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _showError(String message) {
|
void _showError(String message) {
|
||||||
|
|||||||
Reference in New Issue
Block a user