저는 Parse-server의 APP ID Key가 Client에 노출되는 것도 싫고, 중간에 비즈니스 로직도 추가하고 싶고 그래서,
Parse-server를 NodeJS로 한번 감싸서 API 서버 형태로 만들어서 사용하고 있습니다.
API서버와 MongoDB 사이에서 Parse-server가 Rest API로 동작하는 미들웨어가 되는 구성이죠.
이렇게 Rest API로 요청을 보내야 할 때, JS SDK를 쓸 때와는 달리 로그인 세션의 문제가 발생하는데요.
Parse-server가 이 요청의 user를 알아 챌 수 있도록 간단하게 헤더에 토큰 정보를 보내면 됩니다.
-
Client에서 API로 로그인 요청을 보낸것을, Parse-server로 중계하여 처리하면서 얻어진 sessionToken을 가지고 있습니다.
parseRest.get('/login', { username, password }, { 'X-Parse-Revocable-Session': 1 }).then((user) => { console.log(user.sessionToken); ... });
-
API에서 Parse-server로 요청을 보낼때 헤더에 매번 sessionToken을 주입합니다.
const _sessionToken = req.get('sessionToken') || ...; if (_sessionToken) { _headers['X-Parse-Session-Token'] = _sessionToken; }
이렇게 하면 Parse-server는 자체적으로 session을 조회해서 요청을 호출하는 User를 가지게 됩니다.
그러면 Parse-server의 ACL도 사용할 수 있고, Cloud Code에서도 req.user로 처리할 수 있습니다.
…
마지막으로 이렇게 NodeJS에서 Parse-server를 Rest API로 사용할 때 도움이 되는 클라이언트를 만들어 봤습니다.