STEP 01. 인증정보(imp_uid) 서버단에서 획득하기
아래는 본인인증 앞단에서 넘어온 값을 서버단에서 수신받은 예제 입니다.
app.use(bodyParser.json());
...
// "/certifications"에 대한 POST 요청을 처리하는 controller
app.post("/certifications", async (request, response) => {
// request의 body에서 imp_uid 추출
const { imp_uid } = request.body;
})
app.use(bodyParser.json());
...
// "/certifications/redirect"에 대한 GET 요청을 처리하는 controller
app.get("/certifications/redirect", async (request, response) => {
const { imp_uid } = request.query; // request의 query에서 imp_uid 추출
})
app.use(bodyParser.json());
...
// "/certifications"에 대한 POST 요청을 처리하는 controller
app.post("/certifications", async (request, response) => {
const { imp_uid } = request.body; // request의 body에서 imp_uid 추출
try {
// 인증 토큰 발급 받기
const getToken = await axios({
url: "https://api.iamport.kr/users/getToken",
// POST method
method: "post",
// "Content-Type": "application/json"
headers: { "Content-Type": "application/json" },
data: {
imp_key: "imp_apikey", // REST API키
imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret
}
});
const { access_token } = getToken.data; // 인증 토큰
...
// imp_uid로 인증 정보 조회
const getCertifications = await axios({
// imp_uid 전달
url: \`https://api.iamport.kr/certifications/\${imp_uid}\`,
// GET method
method: "get",
// 인증 토큰 Authorization header에 추가
headers: { "Authorization": access_token }
});
const certificationsInfo = getCertifications.data; // 조회한 인증 정보
...
} catch(e) {
console.error(e);
}
});
조회한 인증 정보에서 다음의 고객 정보를 추출하는 서비스 코드 예제입니다.
위의 정보 외에 내국인/외국인 여부 등은 따로 제공되지 않습니다. 카카오 인증의 경우, (주)카카오 정책상 CI값 제공이 어렵습니다. 고객 정보를 추출하여 활용하는 예제입니다. 필요 시, 예제와 같이 고객 정보를 사용하여 연령 제한을 검사할 수 있습니다.
// "/certifications"에 대한 POST 요청을 처리하는 controller
app.post("/certifications", async (request, response) => {
const { imp_uid } = request.body; // request의 body에서 imp_uid 추출
try {
// 인증 토큰 발급 받기
/* ...중략... */
// imp_uid로 인증 정보 조회
/* ...중략... */
const certificationsInfo = getCertifications.data; // 조회한 인증 정보
const { name, birth } = certificationsInfo;
...
// 연령 제한 로직
if (new Date(birth).getFullYear() <= 1999) {
// 연령 만족
} else {
// 연령 미달
}
} catch(e) {
console.error(e);
}
});