회원 인증 API
VeryChat 회원 인증 및 토큰 관리 API
엔드포인트
POST https://gapi.veryapi.io/auth/request-verification-code요청 파라미터
요청 예시
{
"projectId": "550e8400-e29b-41d4-a716-446655440000",
"handleId": "user123"
}• handleId가 @로 시작하는 경우 자동으로 @ 제거 후 처리됩니다.
• handleId에 해당하는 사용자가 존재하는 경우, 베리챗 푸시 알림 및 개인 메시지로 인증번호가 발송됩니다.
• 요청 처리 결과에 따라 성공/실패 상태가 반환됩니다.
엔드포인트
POST https://gapi.veryapi.io/auth/verify-code요청 파라미터
요청 예시
{
"projectId": "550e8400-e29b-41d4-a716-446655440000",
"handleId": "user123",
"verificationCode": 123456
}응답 (성공)
{
"statusCode": 200,
"message": "Verification code is valid"
}응답 (실패)
{
"statusCode": 401,
"message": "Invalid or expired verification code."
}• 이 API는 단순히 인증번호가 유효한지만 확인하며, 토큰을 발급하지 않습니다.
• 실제 로그인 토큰이 필요 없이 단순 점유 인증(사용자가 해당 계정에 접근할 수 있는지)만 확인하는 용도로 사용합니다.
• 실제 로그인 토큰이 필요한 경우 get-tokens API를 사용하세요.
엔드포인트
POST https://gapi.veryapi.io/auth/get-tokens요청 파라미터
요청 예시
{
"projectId": "550e8400-e29b-41d4-a716-446655440000",
"handleId": "user123",
"verificationCode": 123456
}응답 (성공)
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"profileId": "user123",
"profileName": "홍길동",
"profileImage": "https://example.com/profile.jpg"
},
"statusCode": 200
}• 인증번호를 검증하고 실제 로그인에 사용할 수 있는 액세스 토큰과 리프레시 토큰을 발급합니다.
• verify-code와 달리 실제 서비스 이용을 위한 인증 토큰을 제공합니다.
• 사용자 정보 포함: 토큰과 함께 사용자의 기본 정보(profileId, profileName, profileImage)를 반환합니다.
엔드포인트
POST https://gapi.veryapi.io/auth/refresh-tokens요청 파라미터
요청 예시
{
"projectId": "550e8400-e29b-41d4-a716-446655440000",
"handleId": "user123",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}응답 (성공)
{
"statusCode": 200,
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}응답 (실패)
{
"statusCode": 401,
"message": "Invalid or expired refreshToken."
}• 새로운 액세스 토큰과 함께 리프레시 토큰도 갱신됩니다.
• 만료된 리프레시 토큰으로는 갱신할 수 없습니다.
• projectId, handleId, refreshToken 모든 파라미터가 필수입니다.
엔드포인트
POST https://gapi.veryapi.io/auth/validate-token요청 파라미터
요청 예시
Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Body:
{
"projectId": "550e8400-e29b-41d4-a716-446655440000"
}응답 (성공)
{
"statusCode": 200,
"data": {
"valid": true,
"payload": {
"sub": "user123",
"projectId": "550e8400-e29b-41d4-a716-446655440000",
"iat": 1640995200,
"exp": 1640998800
}
}
}응답 (실패)
{
"statusCode": 401,
"message": "Invalid or expired token"
}• Authorization 헤더에 Bearer 토큰 형식으로 액세스 토큰을 전송해야 합니다.
• 권장사항: 성능상의 이유로 가능한 한 각 서버에서 직접 JWT 토큰을 검증하는 것을 권장합니다.
• 이 API는 토큰 검증이 복잡하거나 테스트 용도로 사용하시기 바랍니다.
1. 인증번호 요청 API를 통해 사용자에게 인증번호 발송
2. 사용자가 입력한 인증번호를 검증 API로 확인
3. 검증 성공 시 받은 액세스 토큰으로 다른 API 호출
4. 액세스 토큰 만료 시 리프레시 토큰으로 새 토큰 발급
5. 필요시 토큰 검증 API로 토큰 유효성 확인 (직접 검증 권장)