node.js로 google-oauth2 토큰을 받아올 때 프론트단에서 인증화면이 안뜨게 할 수 있을까요?
조회수 676회
안녕하세요. 초보 node.js 개발자입니다.
저는 서비스에서 youtube를 동영상 스토리지 겸 영상서버로 쓰고 싶은데
이를 위해서는 제 서비스에 들어오는 모든 사용자가 제 토큰을 가지고 업로드를 해야합니다.
현재 npm youtube-api 모듈을 쓰고 있으며
youtube api를 쓰기 위해서 oauth2 토큰을 구글로부터 받아오고 있습니다.
모듈을 활용해 최초 1회 토큰을 받아오는데는 성공했으나
만료기간문제 때문에 계속해서 리프레쉬를 해줘야하는데
이 때 사용자들에게 구글 로그인 화면이 보여져야하는 심각한 문제점이 있습니다.
혹시 이 문제를 백엔드에서 처리할 방법이 없을까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
검색해 보니
client_id
,client_secret
,refresh_token
을 지정해서POST https://accounts.google.com/o/oauth2/token
요청을 날리면 액세스 토큰을 갱신할 수 있다고 하네요.발급되는 갱신 토큰의 수는 제한되며, 클라이언트/사용자 조합당 한도 및 모든 클라이언트의 사용자당 한도가 있습니다. 갱신 토큰을 장기적으로 보관할 수 있는 저장소에 저장하여 유효기간까지 계속 사용해야 합니다. 애플리케이션에서 너무 많은 갱신 토큰을 요청하면 이러한 한도에 도달할 수 있으며, 이 경우 기존 갱신 토큰의 작동이 중지됩니다.
그러면 서버에서는 적당한 때가 되었을 때 자동으로 저
POST
를 날려서 토큰 갱신을 실행하고, 갱신된 토큰을 최신 토큰으로 저장해서 그거 갖고 작업을 하게 하시면 될듯하네요... 근데 실제로 잘될지는 모르겠습니다. -
https://www.domsammut.com/code/php-server-side-youtube-v3-oauth-api-video-upload-guide
링크를 참조해보세요 php로 구현해두었네요.
댓글 입력