상위 문서: 라이믹스/매뉴얼
개요
라이믹스 사이트를 웹뷰로 표시하는 모바일 앱에서 기기를 등록하고 FCM 푸시 알림을 받는 방법이다. 서버의 발송 설정, 회원과 기기 토큰의 연결, 앱의 수신 처리가 모두 필요하다.
서버 설정
관리자의 시스템 설정 → 알림 설정에서 FCM HTTP v1 API를 설정한다. Firebase 콘솔에서 생성한 서비스 계정 파일을 해당 입력란에 등록한다. 파일에는 개인키와 프로젝트 정보가 포함되므로 공개 문서·저장소·앱 코드에 포함하지 않는다.
비동기 작업으로 알림을 처리하는 환경에서는 비동기 실행 스케줄러도 정상적으로 동작해야 한다.
로그인·가입 시 기기 등록
FCM에서 발급받은 device token을 아래 방법 중 하나로 사이트에 전달한다.
| 방법 | 이름 |
|---|---|
| POST 변수 | device_token |
| 쿠키 | device_token |
| HTTP 헤더 | X-Device-Token |
라이믹스는 procMemberLogin 또는 procMemberInsert 액션의 POST 요청이 성공할 때 전달된 토큰을 해당 회원 계정에 등록한다. 쿠키나 헤더가 있다는 이유만으로 모든 페이지 요청에서 등록되는 것은 아니다.
웹뷰의 모든 요청에 토큰을 추가하는 구현이라면 외부 이미지·스크립트·링크로 다른 사이트에 요청할 때 토큰이 함께 나가지 않도록 사이트 범위를 제한한다.
알림 발송과 수신
기기가 등록된 회원에게 알림이 발생하면 등록된 기기들에 푸시를 보낸다. 댓글·쪽지 등의 일반 알림은 서버 설정과 기기 등록을 마치면 연동할 수 있다. 별도의 알림을 생성하는 개발 코드는 NcenterliteController::sendNotification()의 해당 버전 명세를 확인한다.
알림센터의 푸시 알림 포맷에 따라 앱에서 처리할 데이터 구조가 달라진다.
notification 포맷
{
"notification": { "title": "새 댓글이 등록되었습니다." },
"data": { "url": "https://example.com/board/123" }
}
data 포맷
{
"data": {
"sender": "작성자",
"profile_image": "https://example.com/profile.png",
"type": "C",
"subject": "새 댓글이 등록되었습니다.",
"content": "",
"url": "https://example.com/board/123"
}
}
위 예제는 수신 페이로드의 주요 구조를 보여 준다. 앱은 선택한 포맷에 맞게 알림을 표시하고 클릭 시 URL을 처리해야 한다. type 등 세부 값은 알림 종류에 따라 달라진다.
기기 등록·자동 로그인 API
공식 매뉴얼은 다음 member 액션들을 POST로 호출하도록 안내한다.
| 액션 | 주요 입력 | 결과·용도 |
|---|---|---|
| procMemberRegisterDevice | user_id, password, device_token | 인증 성공 시 기기 등록, device_key 반환 |
| procMemberLoginWithDevice | device_token, device_key | 유효한 등록 기기의 키로 로그인 |
| getLoginStatus | 현재 세션으로 요청 | 로그인 여부 확인, CSRF 토큰 취득에 활용 |
user_id에는 아이디 또는 이메일 주소를 전달한다. 앱에서 비밀번호를 계속 기억하는 대신 등록 시 받은 device_key를 사용할 수 있다. 키는 인증 수단이므로 안전하게 보관하고 로그·공유 링크에 넣지 않는다. 실제 응답 필드와 오류 처리는 적용한 라이믹스 버전에서 확인한다.
세션과 CSRF
API 요청은 웹뷰와 같은 세션 쿠키와 User-Agent를 사용해야 하며, 서버가 설정한 쿠키도 웹뷰에 정확히 전달해야 한다. 네이티브 HTTP 클라이언트와 웹뷰의 쿠키 저장소가 분리되면 API에서 로그인했어도 웹뷰에는 반영되지 않을 수 있다.
POST 요청은 사이트의 CSRF 정책을 따라야 한다. 공식 매뉴얼은 내부 주소의 Referer 또는 유효한 X-CSRF-token을 안내한다. getLoginStatus는 토큰을 얻기 위한 예외로 설명되어 있다. CSRF 검사를 끄는 방식으로 연동하지 말고 현재 세션의 토큰을 전달한다.
확인 순서
- FCM 프로젝트·서비스 계정과 앱 토큰이 같은 환경을 가리키는지 확인한다.
- 로그인·가입 성공 시 기기가 해당 계정에 등록되는지 확인한다.
- 댓글·쪽지 알림이 발생하고 푸시 발송이 실행되는지 확인한다.
- 앱의 알림 권한, 수신 포맷, 클릭 시 이동을 확인한다.
- 로그인 해제·계정 전환·토큰 변경 시에도 잘못된 계정의 알림이 표시되지 않는지 점검한다.
같이 보기
출처
이 문서는 라이믹스 공식 매뉴얼을 바탕으로 설명과 예제를 정리하였다. 공식 매뉴얼은 CC BY-SA 4.0으로 배포된다. 원문의 기여 이력은 rhymix-docs 저장소에서 확인할 수 있다.