-
[오픈뱅킹] OpenAPI로 사용자 인증개발 2022. 5. 11. 14:35
오픈뱅킹 오픈API 연동 작업을 하게 되었다.
https://developers.kftc.or.kr/dev
금융결제원 오픈API 개발자사이트
TESTBED FOR DEVELOPERS 오픈 API를 이용하여 창의적인 어플리케이션을 제작해 보세요.
developers.kftc.or.kr
위 사이트 로그인 후 MY PAGE > API Key 관리 항목에 들어가면
해당 화면과 같이 있다. 우선 Callback URL 을 등록 후 우측 하단 이용중인 서비스에서 Callback URL 등록 버튼을 눌러서 완료 상태로 만들어준다.
위 화면 중 Client ID, Client Secret, Callback URL 값을 따로 저장해둔다.
오픈뱅킹의 다른 오픈API들을 사용하기 위해서는 Access Token이 있어야 하는데, 개인 사용자의 경우에는 그 전에 사용자 인증을 먼저 받은 후 계좌를 등록하면 AccessToken이 나온다.
테스트 API는 https://openapi.openbanking.or.kr 가 아닌 https://testapi.openbanking.or.kr 를 사용한다.
우선 Postman을 사용하여 사용자 인증 API를 테스트 해보겠다.
정상적으로 동작하면 위와 같이 body에 html 소스가 반환된다.
본인 인증과 계좌 등록을 마치면
{{redirect_url}}?code=5Ub6OxW0Dajv8D8AgPgWRXtn7Ctp12&scope=inquiry%20login%20transfer&client_info=test&state=b80BLsfigm9OokPTjy03elbJqRHOfGSY
이런식으로 redirect_url로 파라미터가 들어오는데 그 중 code 값이 있다면 성공이다.
이제 Nodejs로 코딩을 해보겠다. 필자의 경우 Lambda와 axios를 사용해서 개발했다.
const axios = require('axios'); const makeResult = (data, headers = {}, code = 200) => ({ statusCode: code, body: data, headers, }); exports.handler = async (event) => { try { const code = event.queryStringParameters?.code; if (!code) return await getCode(); return makeResult(code); } catch (e) { console.log(e); } }; const getCode = async () => { const uri = `${process.env.BASE_URL}/oauth/2.0/authorize`; const res = await axios.get(uri, { params: { response_type: 'code', client_id: process.env.CLIENT_ID, redirect_uri: process.env.REDIRECT_URI, scope: 'login inquiry transfer', client_info: 'test', state: 'b80BLsfigm9OokPTjy03elbJqRHOfGSY', auth_type: '0' } }); return makeResult(null, { location: res.request?.res?.responseUrl }, 301); };
다음으로 해당 code 값을 사용하여 토큰을 발급받아 보겠다.
'개발' 카테고리의 다른 글
[AWS] S3에 정적 웹 호스팅 (0) 2022.05.24 [오픈뱅킹] OpenAPI로 토큰 발급 (0) 2022.05.11 AWS 같은 계정 내 VPC Peering (0) 2022.04.18 AWS에 MongoDB ReplicaSet 구축 (PSA구조) (0) 2022.04.18 AWS Private Instance에 설치한 MongoDB Robo 3T로 접근 (0) 2022.04.14