OAuth 인증 연동

Prev Next

등록된 인증 서버와의 연동을 통해 인증이 완료된 사용자에게만 답변을 응답할 수 있습니다. 최초 1회의 인증이 완료되면, 해당 사용자의 정보가 유지되는 동안에는 추가 인증 절차 없이 답변을 응답합니다.
인증 서비스를 연동하는 방법은 다음과 같습니다.

  1. 네이버 클라우드 플랫폼의 콘솔에서 Services > CLOVA Chatbot > Domain 메뉴를 차례대로 클릭해 주십시오.
  2. 원하는 도메인의 [빌더 실행하기] 버튼을 클릭하여 챗봇 빌더를 실행해 주십시오.
  3. 챗봇 빌더에서 챗봇 설정 > 서비스 연동 탭을 클릭해 주십시오.
  4. 인증 서비스의 [연동] 버튼을 클릭해 주십시오.
  5. 서비스 연동 창에서 인증 URL을 입력해 주십시오.
    • 사용자가 질문을 입력하면 챗봇은 인증된 사용자인지 판단하기 위해 POST {URL}/confirm을 호출하여 입력된 인증 서버에 인증 여부를 확인
    • {URL}은 도메인 관리자가 입력한 인증 URL
    • 챗봇은 사용자의 ID와 플랫폼 정보를 함께 전달
{
  "userId": "${userId}",
  "platform": "${platform}",
  "domainCode":"${domainCode}"
}
필수 타입 설명
userId Y String 사용자의 아이디
platform Y String 메신저 플랫폼
domainCode Y String 현재 도메인의 코드
  • 만약 인증된 사용자인 경우 인증 서버는 다음과 같이 응답을 전달해주어야 합니다.
{
  "valid": true
}
필수 타입 설명
valid Y Boolean 사용자가 인증된 사용자라면 true가 리턴
  1. 인증 요청 메시지와 인증 실패 메시지, 인증 오류 메시지를 입력하고 [연동] 버튼을 클릭해 주십시오.
  • 만약 인증되지 않은 사용자 또는 인증에 실패한 사용자인 경우, 챗봇은 인증 요청 메시지 또는 인증 실패 메시지와 함께 Login 링크가 담긴 URL 버튼을 사용자에게 응답합니다.
    GET {URL}/login?userId=${userId}&platform=${platform}&domainCode=${domainCode}
    
  • 만약 Login에 성공하면 인증 서버는 Invoke URL을 호출합니다.
    Invoke URL을 호출하는 경우 아래의 데이터가 포함되어 있어야 합니다.
    {
      "domainCode": "String",
      "platform": "String",
      "userId": "String",
      "nonce": "Option[String]",
     "needPush": true
    }
    
필수 타입 설명
platform Y String 메신저 플랫폼 정보
userId Y String 사용자 구분을 위한 아이디
nonce Y String link에 사용하기 위한 임시 암호 값.
nonce 값이 존재할 경우 link api를 호출할 때 받은 nonce값을 담아 호출
needPush Y Boolean 답변을 구한 뒤 push 가 필요할 경우 사용.
LINE, TalkTalk 메신저만 지원
  • 로그인 성공 요청이 챗봇 빌더에 전달되면 해당 사용자의 인증 성공에 대한 확인으로 link 리퀘스트를 요청합니다.
POST {URL}/link 
{
  "userId": "String",
  "platform": "String",
  "domainCode": "String",
  "nonce": "Option[String]"
}
필수 타입 설명
userId Y String 사용자 구분을 위한 아이디
platform Y String 메신저 플랫폼 정보
domainCode Y String 도메인을 구분하기 위한 도메인 코드
nonce N String 받은 nonce 값이 존재할 경우 api를 호출할 때 받은 값을 담아 호출
  • POST {URL}/link를 호출했을 때 200OK가 전달되면 link에 성공했다고 판단합니다.
  • link에 성공하면 처음 사용자가 진입했을 때 질문했던 내용에 대해 답변을 찾아 응답합니다.
  • link에 실패하면 인증 실패 메시지와 함께 재로그인을 유도합니다.
  • 만약 로그인 성공 요청에서 needPush: true인 경우 push가 가능한 플랫폼이면 구해진 답변을 push 합니다.