본문 바로가기

[Project] 프로젝트 삽질기65 (feat 나이스 인증 3)

어가며

 본인확인 기능을 개발하기 위해 팀에서는 나이스 본인확인 서비스를 도입했습니다. 나이스에서 제공하는 개발 가이드를 보면서 도입을 해야 했는데, 배경 지식이 전혀 없는 상황에서 도입을 하려고 하니 여러 삽질을 거쳐야만 했습니다. 나이스 인증을 도입하는 다른 분들이 저와 같은 어려움을 겪지 않았으면 하는 바람으로, 나이스 인증 기능을 어떻게 도입했는지를 상세하게 작성해 보려 이 글을 적습니다. 

 

 

 

 

 

 

 


 

 

 

 

 

 



 

나이스 인증 결과 복호화

저번 글에서는 NICE 표준창을 호출하기 위해 요청 정보를 반환하는 과정을 살펴봤습니다. 다음은 유저가 NICE 표준창을 활용해서 인증을 완료하면 인증 결과가 서버 쪽으로 전달되도록 8번부터 11번까지의 과정을 살펴보겠습니다. 이 과정을 코드를 보면서 따라가고 싶으신 분들은 코드를 레포지토리에 올려두었으니 함께 확인해 주시면 됩니다.

 

 

 

 

 

GitHub - epitone/nice-server

Contribute to epitone/nice-server development by creating an account on GitHub.

github.com

 

GitHub - epitone/nice-client

Contribute to epitone/nice-client development by creating an account on GitHub.

github.com

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

나이스 본인인증 요청

유저가 본인인증 서비스를 마무리하면, 클라이언트가 returnUrl 값으로 전달한 경로로 인증결과가 전달됩니다. 저는 localhost:3000/callback 경로로 설정했기 때문에 백엔드의 callback 경로로 암호화된 유저의 정보가 전달됩니다. 

 

 

 

 

 

 

서버는 returnurl로 생성된 API에서 암호화된 인증 결과를 반환받으면 세션에 저장한 대칭키로 값을 복호화한 후 성공 유무를 확인합니다.

 

 

 

 

 

 

 

컨트롤러는 위와 같이 구성했습니다.

 

 

 

 

 

세션에 저장된 nice_key를 조회해서, NICE에서 받은 암호화된 데이터를 복호화합니다. 이렇게 인증 결과를 복호화하면 유저 정보를 살펴볼 수 있습니다. 유저 정보를 살펴보고, 인증을 완료처리한다면 컨트롤러에서 성공에 해당하는 경로로 리다이렉트 시키고, 만약 인증이 실패했다면 실패했다는 경로로 리다이렉트 시킵니다. (11번에 해당하는 리다이렉트 로직은 코드에서 별도로 구성하지는 않았습니다.) 

 

여기까지 완료되면 나이스 인증은 마무리되었습니다. 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

마치며

나이스 인증 3부작 시리즈를 마무리합니다. 나이스 인증을 구현하면서 참고할만한 글이 없어서 이 글이 누군가에게 도움이 되었으면 합니다. 

 

 

 

 

 

 

 


 

 

 

 

 

출처

 

나이스평가정보 API-M

나이스평가정보

www.niceapi.co.kr

 

[Node.js] 나이스 본인인증 API 구현하기

나이스 본인인증 API 구현하기 나이스 본인인증을 도입하던 중 나이스 측으로부터 Java로만 작성된 예시 코드를 제공받을 수 있어고, 해당 코드를 Node.js로 마이그레이션 하는 과정에서 꽤 많은 공

velog.io

 

[Next.js] Nice API 본인인증 구현하기

1. NICE 표준창 호출 NICE 본인인증 과정은 위 그림과 같다. 위 그림의 "기관 토큰 발급 ➜ 암호화 토큰 발급 ➜ 대칭키 생성 ➜ 요청정보 암호화" 과정은 백엔드 개발자가 api로 만들어 표준창 호출

rick-ford.tistory.com