Tinyauth

명시적 플로우

이용약관에 대한 명시적 동의 플로우 구성하기

명시적(explicit) 동의 플로우는 사용자가 각 약관 항목에 대해 체크박스를 직접 선택하여 동의하는 방식이에요. 법적 요구사항이 엄격한 환경이나, 선택적 동의 항목(마케팅 수신 등)을 제공하고 싶을 때 적합해요.


구성 방법

terms 섹션에서 consent_modeexplicit으로 설정해요 (기본값이므로 생략할 수도 있어요).

# config.yaml
terms:
  - id: tos
    required: true
    consent_mode: explicit
    version: "1.0.0"
    content:
      ko:
        title: 이용약관
        type: link
        content: https://example.com/ko/terms
      en:
        title: Terms of Service
        type: link
        content: https://example.com/en/terms

  - id: privacy
    required: true
    consent_mode: explicit
    version: "1.0.0"
    content:
      ko:
        title: 개인정보 처리방침
        type: link
        content: https://example.com/ko/privacy
      en:
        title: Privacy Policy
        type: link
        content: https://example.com/en/privacy

  - id: marketing
    required: false
    consent_mode: explicit
    version: "1.0.0"
    content:
      ko:
        title: 마케팅 수신 동의
        type: text
        content: 마케팅 이메일 및 프로모션 알림을 수신하시겠어요?
      en:
        title: Marketing Communications
        type: text
        content: Would you like to receive marketing emails and promotional notifications?

설정 항목

항목필수기본값설명
idO-약관의 고유 식별자예요. 소문자 영숫자, -, _만 사용할 수 있어요.
requiredXtrue동의 필수 여부예요. true이면 체크하지 않으면 가입할 수 없어요.
consent_modeXexplicitexplicit으로 설정하면 체크박스가 표시돼요.
versionO-약관의 버전 문자열이에요.

약관 내용 유형

약관 내용(content)은 언어별로 두 가지 유형을 지원해요.

외부 URL로 약관 전문을 연결해요. 체크박스 옆에 약관 이름이 링크로 표시돼요.

content:
  ko:
    title: 이용약관
    type: link
    content: https://example.com/ko/terms

텍스트 유형 (type: text)

약관 내용을 인라인으로 표시해요. 체크박스 옆의 약관 이름을 클릭하면 내용이 모달 창으로 표시돼요.

content:
  ko:
    title: 마케팅 수신 동의
    type: text
    content: 마케팅 이메일 및 프로모션 알림을 수신하시겠어요?

동작 방식

회원가입 시

비밀번호 기반 회원가입 화면에서 명시적 약관 항목이 체크박스로 표시돼요.

  • required: true인 약관은 반드시 체크해야 가입이 가능해요.
  • required: false인 약관은 선택 사항이에요.

OAuth 소셜 로그인 시

명시적 약관이 하나라도 존재하는 경우, 새로운 사용자의 소셜 로그인 시 별도의 약관 동의 페이지(/terms)로 이동해요. 사용자가 필수 약관에 동의한 후에야 계정 생성이 완료돼요.


약관 버전 업데이트

약관의 version 값을 변경하면, 해당 약관에 이미 동의한 기존 사용자에게 재동의를 요청할 수 있어요.

# 기존
- id: tos
  version: "1.0.0"

# 변경 후
- id: tos
  version: "2.0.0"

버전이 변경되면:

  1. 기존 사용자가 다음 로그인 시 약관 동의 페이지(/terms)로 이동해요.
  2. 업데이트된 약관 옆에 버전이 변경되었다는 안내가 표시돼요.
  3. 사용자가 재동의하면 새 버전으로 동의 기록이 갱신돼요.
Note

버전 비교는 정확한 문자열 일치로 이루어져요. "1.0.0"에서 "1.0.1"로 변경해도 재동의가 필요해요.