API key 인증 문의 #77
-
사용 중인 프로그래밍 언어 및 버전flutter SDK 버전No response 운영 환경개발 환경 (로컬) 질문/문제 설명안녕하세요. flutter 에서 개발중에 있습니다. response: 400 - {"errorCode":"SignatureDoesNotMatch","errorMessage":"생성한 signature를 확인하세요."} 코드 예시import 'dart:convert';
import 'dart:math';
import 'package:crypto/crypto.dart';
class Authorization {
static final String apiKey =
static final String apiSecret =
// 랜덤 salt 생성 (32바이트)
static String generateSalt() {
final random = Random.secure();
final bytes = List<int>.generate(32, (i) => random.nextInt(256));
return base64Encode(bytes);
}
// HMAC-SHA256 서명 생성
static String generateSignature(String message) {
final key = utf8.encode(apiSecret);
final bytes = utf8.encode(message);
final hmacSha256 = Hmac(sha256, key);
final digset = hmacSha256.convert(bytes);
return digset.toString();
}
static String getAuthorization() {
final date =
DateTime.now().toUtc().toIso8601String().split('.').first + 'Z';
final salt = generateSalt();
final signature = generateSignature(date + salt);
final authoriztion =
'HMAC-SHA256 apiKey=$apiKey, date=$date, salt=$salt, signature=$signature';
return authoriztion;
}
}시도한 해결 방법date 형식을 여러가지로 시도해봤습니다.(utc, iso) 기대하는 결과인증 에러 없이 메시지가 성공적으로 전송 확인사항
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
|
안녕하세요, 솔라피 기술지원팀입니다. 우선 당사에서는 flutter sdk 또는 flutter의 기술지원은 다소 어려운 점이 있다는 점 미리 양해의 말씀드립니다. 다소 부정확한 답을 드릴 수 밖에 없는 점은 양해 부탁드리며, 당사가 제공해드리는 SDK들을 보시면 아시겠지만, 제공 해드리는 API는 모두 백엔드 시스템 하에서 사용하는 것을 전제하에 제공해드리고 있습니다. 따라서, 클라이언트 환경에서는 디컴파일 등으로 인해 소스가 유출되어 피해가 발생하실 수 있는 부분이 있어 가급적 서버 환경에서 연동해주시길 당부드리며 |
Beta Was this translation helpful? Give feedback.
안녕하세요, 솔라피 기술지원팀입니다. 우선 당사에서는 flutter sdk 또는 flutter의 기술지원은 다소 어려운 점이 있다는 점 미리 양해의 말씀드립니다.
보내주신 코드를 살펴봤을 때에는 salt 부분에서 base64 인코딩으로 인해 signature가 잘못되지 않았을까 하는 추측은 있습니다.
다소 부정확한 답을 드릴 수 밖에 없는 점은 양해 부탁드리며, 당사가 제공해드리는 SDK들을 보시면 아시겠지만, 제공 해드리는 API는 모두 백엔드 시스템 하에서 사용하는 것을 전제하에 제공해드리고 있습니다.
따라서, 클라이언트 환경에서는 디컴파일 등으로 인해 소스가 유출되어 피해가 발생하실 수 있는 부분이 있어 가급적 서버 환경에서 연동해주시길 당부드리며
클라이언트 앱 등으로 인해 유출사고가 발생할 경우 당사에서는 별도로 이에 대한 책임을 지지 않는 점은 양해 부탁드립니다.