현재 사용자의 모바일 설정 조회 API
현재 사용자의 모바일 설정 조회 API는 JWT 토큰에서 사용자 ID를 추출하여 자신의 모바일 앱 설정 정보를 조회합니다.
참고
이 API는 JWT 인증을 통해 현재 로그인한 사용자의 모바일 앱 설정을 조회하는 데 사용됩니다. 별도의 사용자 ID 파라미터가 필요하지 않습니다.
현재 사용자의 모바일 설정 조회
JWT 토큰에서 사용자 ID를 추출하여 자신의 모바일 앱 설정 정보를 조회합니다.
- HTTP Method:
GET - Path:
/v1/mobile/me/settings - 인증: Access Token 필요 (Authorization: Bearer
{accessToken})
Headers
| Header | Type | Description | Required |
|---|---|---|---|
Authorization | string | Bearer <access-token> | Yes |
Path Parameters
이 API는 Path Parameter를 사용하지 않습니다.
JWT 토큰에서 사용자 ID 추출
JWT 토큰에서 자동으로 사용자 ID를 추출하여 해당 사용자의 설정을 조회합니다.
Query Parameters
이 API는 Query Parameter를 사용하지 않습니다.
Request Body
이 API는 Request Body를 사용하지 않습니다.
Responses
| HTTP Status Code | 설명 | Error Code(s) |
|---|---|---|
200 OK | 조회 성공 | - |
401 Unauthorized | 액세스 토큰 인증 실패 | 2001 |
404 Not Found | 사용자 모바일 설정을 찾을 수 없음 | 8061 |
500 Internal Server Error | 서버 내부 오류 | 8000 |
200 OK - 현재 사용자의 모바일 설정 조회 성공
{
"userId": "user-123-uuid",
"questionnaireBundleId": "bundle-456-uuid",
"screenshotAllowed": false,
"appNotificationEnabled": true,
"systemNotificationEnabled": true,
"analyticsConfiguration": {
"enabled": true,
"dataTypes": ["usage", "performance"]
},
"healthKitPermissionGranted": true,
"healthConnectPermissionGranted": false,
"locationPermissionGranted": true,
"videoRecordingAllowed": false,
"cameraPermissionGranted": true,
"photoLibraryPermissionGranted": true,
"fcmToken": "fGHI789012JKLM...",
"createdAt": 1747500000000,
"updatedAt": 1747557000000,
"lastResetAt": 1747500000000
}
| 필드 | 타입 | 설명 | 필수 |
|---|---|---|---|
userId | string | 사용자 ID | Yes |
questionnaireBundleId | string | 설문지 번들 ID | Yes |
screenshotAllowed | boolean | 스크린샷 허용 여부 | Yes |
appNotificationEnabled | boolean | 앱 알림 활성화 여부 | Yes |
systemNotificationEnabled | boolean | 시스템 알림 활성화 여부 | Yes |
analyticsConfiguration | object | 분석 설정 | Yes |
analyticsConfiguration.enabled | boolean | 분석 활성화 여부 | Yes |
analyticsConfiguration.dataTypes | array | 분석 데이터 타입 배열 | Yes |
healthKitPermissionGranted | boolean | HealthKit 권한 허용 여부 (iOS) | Yes |
healthConnectPermissionGranted | boolean | Health Connect 권한 허용 여부 (Android) | Yes |
locationPermissionGranted | boolean | 위치 권한 허용 여부 | Yes |
videoRecordingAllowed | boolean | 비디오 녹화 허용 여부 | Yes |
cameraPermissionGranted | boolean | 카메라 권한 허용 여부 | Yes |
photoLibraryPermissionGranted | boolean | 사진 라이브러리 권한 허용 여부 | Yes |
fcmToken | string | Firebase Cloud Messaging 토큰 (nullable) | No |
createdAt | number | 생성 시간 (Unix timestamp in milliseconds, Kotlin: Long, Swift: Int64) | Yes |
updatedAt | number | 최종 수정 시간 (Unix timestamp in milliseconds, Kotlin: Long, Swift: Int64) | Yes |
lastResetAt | number | 마지막 초기화 시간 (Unix timestamp in milliseconds, Kotlin: Long, Swift: Int64) | Yes |
401 Unauthorized - 액세스 토큰 인증 실패
{
"code": 2001,
"message": "UNAUTHORIZED",
"detail": "유효하지 않은 액세스 토큰입니다."
}
참고: JWT 토큰에서 사용자 ID를 추출할 수 없는 경우에도 이 오류가 발생할 수 있습니다.
404 Not Found - 사용자 모바일 설정을 찾을 수 없음
{
"code": 8061,
"message": "USER_MOBILE_SETTINGS_NOT_FOUND",
"detail": "사용자 모바일 설정을 찾을 수 없습니다."
}
500 Internal Server Error - 서버 내부 오류
{
"code": 8000,
"message": "SERVER_ERROR",
"detail": "서버 내부 오류가 발생했습니다."
}
설명
mobile.service.ts의getUserMobileSettings메서드를 사용하며,MobileController의getCurrentUserMobileSettings를 통해 노출됩니다.- 주요 기능:
- JWT 토큰에서 사용자 ID 자동 추출
- 현재 사용자의 모바일 앱 설정 조회
- 알림 설정, 권한 설정, 분석 설정 등 포함
- 설문지 번들 ID 및 FCM 토큰 정보 제공
- JWT 가드를 통해 인증된 사용자만 접근할 수 있습니다.
- 별도의 사용자 ID 파라미터 없이 토큰에서 자동으로 사용자를 식별합니다.
JWT 인증 처리
이 API는 @UseGuards(JwtAuthGuard)를 사용하여 JWT 토큰 인증을 처리합니다:
- 토큰 검증: Authorization 헤더의 JWT 토큰을 검증합니다.
- 사용자 ID 추출: 토큰에서 사용자 ID를 추출합니다.
- 자동 매핑: 추출된 사용자 ID로 해당 사용자의 설정을 조회합니다.
Analytics Configuration 상세
analyticsConfiguration 객체에 대한 상세 설명입니다.
| 필드 | 타입 | 설명 | 가능한 값 |
|---|---|---|---|
enabled | boolean | 분석 기능 활성화 여부 | true, false |
dataTypes | array | 수집할 데이터 타입 배열 | ["usage", "performance"] 등 |
참고: enabled와 dataTypes 설정으로 분석 수집 범위를 제어할 수 있습니다.
사용 예시
요청 예시:
curl -X GET "https://api.dta-wide.com/mobile/me/settings" \
-H "Authorization: Bearer your-access-token"
응답 예시:
{
"userId": "user-123-uuid",
"questionnaireBundleId": "bundle-456-uuid",
"screenshotAllowed": false,
"appNotificationEnabled": true,
"systemNotificationEnabled": true,
"analyticsConfiguration": {
"enabled": true,
"dataTypes": ["usage", "performance"]
},
"healthKitPermissionGranted": true,
"healthConnectPermissionGranted": false,
"locationPermissionGranted": true,
"videoRecordingAllowed": false,
"cameraPermissionGranted": true,
"photoLibraryPermissionGranted": true,
"fcmToken": "fGHI789012JKLM...",
"createdAt": 1747500000000,
"updatedAt": 1747557000000,
"lastResetAt": 1747500000000
}
권한 설정 필드 상세
| 필드 | 플랫폼 | 설명 |
|---|---|---|
healthKitPermissionGranted | iOS | Apple HealthKit 데이터 접근 권한 |
healthConnectPermissionGranted | Android | Google Health Connect 데이터 접근 권한 |
locationPermissionGranted | 공통 | 위치 정보 접근 권한 |
cameraPermissionGranted | 공통 | 카메라 접근 권한 |
photoLibraryPermissionGranted | 공통 | 사진 라이브러리 접근 권한 |
보안 고려사항
- JWT 토큰 검증: 모든 요청에서 JWT 토큰의 유효성을 검증합니다.
- 자동 사용자 식별: 토큰에서 사용자 ID를 추출하여 다른 사용자의 설정에 접근할 수 없도록 보장합니다.
- 권한 기반 접근: 인증된 사용자만 자신의 설정에 접근할 수 있습니다.
변경 이력
| 버전 | 날짜 | 작성자 | 변경 내용 |
|---|---|---|---|
| 0.1.0 | 2025-07-12 | bok@weltcorp.com | 최초 작성 - 현재 사용자의 모바일 설정 조회 API 문서화 |