1
0
forked from baron/baron-sso

로그인 페이지 및 기능 구현

This commit is contained in:
2026-01-26 14:21:44 +09:00
parent 3725eac1a8
commit 4919cb2f8b
10 changed files with 715 additions and 1 deletions

View File

@@ -300,4 +300,89 @@ class AuthProxyService {
await sendLog('ERROR', message, data: data);
}
// --- Signup Methods ---
static Future<bool> checkEmailAvailability(String email) async {
final url = Uri.parse('$_baseUrl/api/v1/auth/signup/check-email');
final response = await http.post(
url,
headers: {'Content-Type': 'application/json'},
body: jsonEncode({'email': email}),
);
if (response.statusCode == 200) {
final data = jsonDecode(response.body);
return data['available'] ?? false;
}
return false;
}
static Future<void> sendSignupCode(String target, String type) async {
final path = type == 'email' ? 'send-email-code' : 'send-sms-code';
final url = Uri.parse('$_baseUrl/api/v1/auth/signup/$path');
final response = await http.post(
url,
headers: {'Content-Type': 'application/json'},
body: jsonEncode({'target': target}),
);
if (response.statusCode != 200) {
throw Exception('Failed to send code: ${response.body}');
}
}
static Future<bool> verifySignupCode(String target, String type, String code) async {
final url = Uri.parse('$_baseUrl/api/v1/auth/signup/verify-code');
final response = await http.post(
url,
headers: {'Content-Type': 'application/json'},
body: jsonEncode({
'target': target,
'type': type,
'code': code,
}),
);
if (response.statusCode == 200) {
final data = jsonDecode(response.body);
return data['success'] ?? false;
}
return false;
}
static Future<void> signup({
required String email,
required String password,
required String name,
required String phone,
required String affiliationType,
String? companyCode,
required String department,
required bool termsAccepted,
}) async {
final url = Uri.parse('$_baseUrl/api/v1/auth/signup');
final response = await http.post(
url,
headers: {'Content-Type': 'application/json'},
body: jsonEncode({
'email': email,
'password': password,
'name': name,
'phone': phone,
'affiliationType': affiliationType,
if (companyCode != null) 'companyCode': companyCode,
'department': department,
'termsAccepted': termsAccepted,
}),
);
if (response.statusCode != 200) {
final error = jsonDecode(response.body)['error'] ?? 'Signup failed';
throw Exception(error);
}
}
}