JWT 사용자 인증 활성화

Freshchat은 JSON Web Token(JWT)을 통해 사용자 인증을 관리할 수 있도록 합니다. JWT 사용자 인증을 통해 인증된 사용자만 구성된 웹 위젯을 통해 대화를 시작할 수 있습니다. 이 문서에서는 Freshchat 웹 채팅 위젯에 대한 JWT 사용자 인증 정보를 제공합니다. 문서에는 다음 내용이 포함되어 있습니다:

  • 개요
  • 사용자 인증 강제
  • JWT 토큰 생성
  • 헤더
  • 페이로드
  • 서명
  • 웹 채팅 위젯에 JWT 토큰 포함
  • 에이전트 경험

개요

웹 채팅 위젯에 사용자 인증을 강제하면 로그인한 사용자와 익명 사용자 모두에게 JWT 토큰 인증이 필수적입니다. 이는 등록된 사용자나 방문자 모두의 상호작용이 토큰 검증을 통해 보안되도록 보장합니다.

웹 채팅 위젯을 위한 JWT 사용자 인증 워크플로우

  1. 대화 시작: 사용자가 채팅 위젯을 클릭하여 대화를 시작합니다.
  2. 토큰 요청: Freshchat이 사용자 데이터를 포함한 서명된 JWT 토큰을 요청합니다.
  3. 채팅 초기화: Freshchat이 JWT 토큰을 전달하여 채팅 세션을 초기화합니다.
  4. 토큰 검증: Freshchat이 JWT 페이로드에서 사용자 세부 정보를 수신하고 사용자에게 채팅 세션에 대한 액세스를 부여합니다.

사용자 인증 강제

참고: JWT 사용자 인증이 구성되고 활성화되면 방문자와 식별된 사용자 모두에게 필수적입니다. 이는 익명 방문자나 인증된 사용자 모두의 상호작용이 안전한 토큰 검증을 요구하도록 보장합니다.

  1. 관리자로 계정에 로그인합니다.
  2. 관리 설정 > 채널 > 웹 채팅으로 이동합니다. 사용자 인증 탭을 클릭합니다.

암호화 키 추가

  1. 키 생성을 클릭하여 새 암호화 키를 생성합니다. 이는 일회성 프로세스입니다.
  2. 암호화 키를 복사하여 저장합니다. 사용자 인증을 활성화한 후 JWT 토큰을 생성하는 데 필요합니다. 참고: 생성된 키는 계정의 모든 구성된 위젯에 대해 유효하고 동일합니다.

사용자 인증 강제: JWT 사용자 인증을 활성화하려면 옵션을 전환합니다. 확인 팝업이 나타납니다. 강제를 클릭하여 확인합니다.

JWT 인증이 강제되면 웹 위젯을 사용하는 모든 사용자에게 JWT 토큰 전달이 필수적입니다. 사용자 인증이 활성 상태임을 확인할 수 있습니다.

언제든지 JWT 사용자 인증을 비활성화할 수 있습니다. 사용자 인증을 비활성화하려면 토글을 클릭한 다음 나타나는 팝업에서 비활성화를 클릭합니다. 비활성화되면 "활성" 레이블이 사라지고 암호화된 키 섹션 아래에 초안 도움말 텍스트가 다시 나타납니다.

참고: 이 작업은 모든 웹 채팅 위젯에 대한 사용자 인증을 비활성화합니다.

JWT 토큰 생성

JWT는 당사자 간의 정보를 안전하게 전송하기 위해 사용되는 URL 안전 토큰인 공개 표준(RFC 7519)입니다. 예를 들어, 사용자 인증을 강제한 후에는 사용자가 웹 채팅 위젯을 통해 대화를 시작할 때마다 JWT 토큰이 필요합니다.

참고: JWT 토큰을 수동으로 생성할 필요는 없습니다. Node.js, Ruby 또는 Python과 같은 언어로 사용할 수 있는 JWT 라이브러리를 사용할 수 있습니다. 또는 jwt.io를 사용하여 웹 기반 양식을 통해 토큰을 생성할 수 있습니다. 그러나 JWT 토큰을 타사 사이트에 노출하지 않는 것이 좋습니다.

JWT 토큰 생성에 대해 확신이 없다면 엔지니어링 또는 지원 팀에 도움을 요청하십시오.

JWT 토큰의 구성 요소

JWT는 세 가지 주요 부분으로 구성됩니다:

  • 헤더
  • 페이로드
  • 서명

헤더

토큰의 유형과 사용된 서명 알고리즘을 지정합니다. 두 가지 필드를 포함합니다:

  • alg: 토큰 서명에 사용된 알고리즘입니다. 예를 들어, Freshchat의 경우 HS256입니다.
  • typ: 토큰의 유형으로, JWT입니다.

예시:

{
  "alg": "HS256",
  "typ": "JWT"
}

페이로드

전송하려는 클레임 또는 데이터를 포함합니다. 다음은 first_name, last_name, phone_number, exp(만료 시간), reference_id 및 freshchat_uuid가 포함된 예시 페이로드입니다.

참고: Freshchat 웹 채팅 위젯에서 사용자를 인증하려면 유일하게 필요한 매개변수는 사용자를 고유하게 식별하는 freshchat_uuid입니다.

{
  "first_name": "John",
  "last_name": "Doe",
  "phone_number": "+1234567890",
  "exp": 1716239022,
  "reference_id": "ref-123456",
  "freshcat_uuid": "uuid-123456-abcdef"
}
  • first_name (선택 사항): 사용자의 이름(예: "John")으로, 페이로드에 사용자별 정보를 포함하는 데 사용됩니다.
  • last_name (선택 사항): 사용자의 성(예: "Doe")으로, 사용자 식별에도 사용됩니다.
  • phone_number (선택 사항): 사용자의 전화번호(예: "+1234567890")를 저장하며, 연락 목적이나 사용자 식별을 용이하게 하는 데 사용될 수 있습니다.
  • exp (선택 사항): Unix 타임스탬프로 표현된 토큰의 만료 시간을 정의합니다(예: 1716239022). 이 타임스탬프는 JWT의 유효 기간을 제한하여 적시 토큰 갱신을 강제함으로써 보안을 강화합니다.
  • reference_id (필수): 시스템 내에서 사용자를 고유하게 식별하는 식별자(예: "ref-123456")입니다. 이 ID는 플랫폼 간에 사용자를 정확하게 인식하고 추적하는 데 필수적입니다.
  • freshcat_uuid (필수): 애플리케이션 컨텍스트에서 사용자 또는 세션을 고유하게 식별하는 식별자(예: "uuid-123456-abcdef")입니다. 내부적으로 개별 엔터티나 세션을 구분하여 정확한 사용자 관리 및 추적을 가능하게 합니다.

서명

토큰이 변경되지 않았음을 보장합니다. 인코딩된 헤더, 페이로드 및 공유 비밀을 지정된 알고리즘으로 결합하여 생성됩니다. 계정의 공유 비밀은 사용자 인증 탭에서 찾을 수 있습니다.

최종 JWT 토큰은 인코딩된 헤더, 페이로드 및 서명을 결합하여 점(.)으로 연결하여 생성됩니다.

JWT 토큰 = header.payload.signature

웹 채팅 위젯에 JWT 토큰 포함

JWT 사용자 인증을 강제한 후에는 JWT 인증을 사용하여 웹 채팅 위젯을 시작하는 다음 스크립트를 포함합니다.

코드 구성 요소: 구성 요소 설명 jwtAuthToken 필드 생성된 JWT 토큰이 jwtAuthToken 필드에 삽입됩니다 (jwtAuthToken: "your-generated-jwt-token" 줄). 위젯 소스 URL 위젯 소스 코드의 URL, your-cdn-url.com/path/to/widget.js. 실제 위젯 스크립트 URL로 대체하세요. 임베드 코드 탭에서 위젯 소스 코드를 식별할 수 있습니다. window.fcSettings Freshchat 위젯의 구성을 초기화하며, 사용자 인증을 포함합니다. authenticateUser 함수 UUID를 사용하여 사용자를 인증하며, 기존 UUID를 사용하거나 필요시 새로 생성합니다. userData에 freshchat_uuid가 포함되어 있는지 확인합니다: 예인 경우, 이 UUID로 authenticateCB를 호출합니다. 아니오인 경우, window.fcWidget.user.getUUID()를 사용하여 새 UUID를 생성하고 새 UUID로 authenticateCB를 호출합니다. 사용자 참조 ID 확인 사용자 참조 ID를 동적으로 가져옵니다. 위의 예에서는 123이 사용됩니다. 사용자 참조 ID가 존재하는 경우, window.fcWidgetMessengerConfig는 인증을 위한 JWT 토큰을 설정합니다. 이 JWT는 채팅 위젯으로 사용자를 인증하는 데 사용됩니다. 사용자 참조 ID가 존재하지 않는 경우, jwtAuthToken 구성 없이 스크립트 요소를 문서 본문에 생성하고 추가합니다. 에이전트 경험 JWT 사용자 인증이 활성화된 경우, 고객 연락처는 대화 인박스에서 인증된 것으로 표시됩니다. 인증이 만료된 사용자의 경우, 인박스에 X 표시가 나타납니다. 이는 사용자와 에이전트 간의 안전하고 최신의 상호작용을 보장합니다. 인증된 사용자 인증되지 않은 사용자

이 문서가 도움이 되었나요?

Freshdesk Omni AI 도우미

JWT 사용자 인증 활성화

AI 어시스턴트 초기화 중...