Express 개발환경에서 NPM을 이용해 kakaoCert Node.js SDK를 추가한 후 본인인증 요청 기능을 구현하는 예시입니다.
① kakaoCert Node.js SDK를 추가하기 위해 Express 프로젝트 package.json 파일에 kakaoCert Node.js SDK 정보를 추가하고 npm install을 진행합니다.
{
"name": "kakaocert-node",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "~4.16.1",
"http-errors": "~1.6.3",
"morgan": "~1.9.1",
"ejs": "~2.5.5",
"kakaocert": "2.51.0"
}
}
① 프로젝트의 routes 폴더 하위에 "kakaocert.js"를 생성하고, 아래 코드를 참고하여 연동신청시 발급받은 링크아이디(LinkID)와 비밀키(Secretkey)를 입력하고 kakaoCert 서비스 객체를 생성 합니다.
var express = require('express');
var router = express.Router();
var kakaocert = require('kakaocert');
kakaocert.config( {
// 연동신청하여 발급받은 링크아이디, 비밀키
LinkID :'TESTER',
SecretKey : 'SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I=',
// 인증토큰 IP제한기능 사용여부, 권장(true)
IPRestrictOnOff: true,
// 인증토큰정보 로컬서버 시간 사용여부
UseLocalTimeYN: true,
// 카카오써트 API 서비스 고정 IP 사용여부, true-사용, false-미사용, 기본값(false)
UseStaticIP: false,
// 로컬시스템 시간 사용 여부 true - 사용, false-미사용, 기본값(false)
UseLocalTimeYN: true,
defaultErrorHandler: function (Error) {
console.log('Error Occur : [' + Error.code + '] ' + Error.message);
}
});
// kakaoCert 서비스 클래스 생성
var kakaocertService = kakaocert.KakaocertService();
// requestVerifyAuth 함수 호출 부분 입력 자리
module.exports = router;
② 아래 코드를 참고하여 ①에서 생성한 kakaocert.js 파일에 본인인증 요청 함수(requestVerifyAuth) 호출 코드를 입력합니다.
// 생략..
/*
* 본인인증 전자서명을 요청합니다.
* - 본인인증 서비스에서 이용기관이 생성하는 Token은 사용자가 전자서명할 원문이 됩니다. 이는 보안을 위해 1회용으로 생성해야 합니다.
* - 사용자는 이용기관이 생성한 1회용 토큰을 서명하고, 이용기관은 그 서명값을 검증함으로써 사용자에 대한 인증의 역할을 수행하게 됩니다.
*/
router.get('/RequestVerifyAuth', function (req, res, next) {
// kakaoCert 이용기관코드, kakaoCert 파트너 사이트에서 확인
var clientCode = '020040000001';
// 본인인증 요청정보 객체
var requestVerifyAuth = {
// 고객센터 전화번호, 카카오톡 인증메시지 중 "고객센터" 항목에 표시
CallCenterNum : '1600-9999',
// 고객센터명, 카카오톡 인증메시지 중 "고객센터명" 항목에 표시
CallCenterName : '테스트',
// 인증요청 만료시간(초), 최대값 : 1000 인증요청 만료시간(초) 내에 미인증시, 만료 상태로 처리됨 (권장 : 300)
Expires_in : 300,
// 수신자 생년월일, 형식 : YYYYMMDD
ReceiverBirthDay : '19900108',
// 수신자 휴대폰번호
ReceiverHP : '01012341234',
// 수신자 성명
ReceiverName : '테스트',
// 별칭코드, 이용기관이 생성한 별칭코드 (파트너 사이트에서 확인가능)
SubClientID : '',
// 인증요청 메시지 부가내용, 카카오톡 인증메시지 중 상단에 표시
TMSMessage : 'TMSMessage',
// 인증요청 메시지 제목, 카카오톡 인증메시지 중 "요청구분" 항목에 표시
TMSTitle : '본인인증 요청',
/*
* 인증서 발급유형 선택
* true : 휴대폰 본인인증만을 이용해 인증서 발급
* false : 본인계좌 점유 인증을 이용해 인증서 발급
*
* 카카오톡 인증메시지를 수신한 사용자가 카카오인증 비회원일 경우,
* 카카오인증 회원등록 절차를 거쳐 은행계좌 실명확인 절차를 밟은 다음 전자서명 가능
*/
isAllowSimpleRegistYN : false,
/*
* 수신자 실명확인 여부
* true : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 ReceiverName 값을 비교
* false : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 RecevierName 값을 비교하지 않음.
*/
isVerifyNameYN : true,
// 전자서명 원문, 사용자가 전자서명할 원문, 보안을 위해 1회용으로 생성
Token : 'Token Value',
// 이용기관이 생성한 payload(메모) 값
PayLoad : 'memo Info',
};
kakaocertService.requestVerifyAuth(clientCode, requestVerifyAuth,
function(result){
res.render('requestVerifyAuth', {path: req.path, receiptId: result.receiptId});
}, function(error){
res.render('requestVerifyAuth', {path: req.path, code: error.code, message: error.message});
});
});
// 생략..
③ 프로젝트 views 폴더 하위에 함수 호출 결과를 확인하기 위한 "requestVerifyAuth.ejs" 파일을 추가합니다.
<!DOCTYPE html>
<html>
<head>
<title>kakaocert Node.js Express Example</title>
</head>
<body>
<div>
<p>Response</p>
<fieldset>
<legend>본인인증 요청</legend>
<ul>
<% if (typeof receiptId != 'undefined') { %>
<li>접수아이디 (receiptId) : <%= receiptId %></li>
<% } else { %>
<li>오류코드 : <%= code %></li>
<li>오류메시지 : <%= message %></li>
<% } %>
</ul>
</fieldset>
</div>
</body>
</html>
④ 아래 코드를 참고하여 프로젝트의 app.js 파일에 Router 부분을 입력합니다.
// 생략..
var kakaocertRouter = require('./routes/kakaocert');
var app = express();
// 생략..
app.use('/kakaocert', kakaocertRouter);
// 생략..
⑤ 웹브라우저 페이지를 호출하여 함수호출 결과를 확인합니다.
기술지원센터
kakaoCert 기술지원은 유선, 메일, 원격지원 등 다양한 채널을 통해 제공됩니다.
T. 1600-9854E. code@linkhubcorp.com
Copyright (C) LinkHub. All Rights Reserved.