기본 콘텐츠로 건너뛰기

Meteor Naver OAuth login Package 작성 : 네이버 로그인

http://pow.cx/ 를 설치해준다.
naver는 localhost에서 oauth2 인증하는 것을 허용하지 않는다.

echo 3000 > ~/.pow/devlocal

설치 후 이렇게 해서 

ROOT_URL=http://devlocal.dev PORT=80 meteor

브라우저에서 80포트로 리디렉션한 http://devlocal.dev 로 접속하자.

막판에 getUserProfile 이 안되서 http://static.nid.naver.com/oauth/naverOAuthExp.nhn  여기에 맨 마지막 03. Test API 호출에 accessToken을 넣고 돌려보니 Request에

POST /nidlogin/nid/getUserProfile.xml HTTP/1.1 User-Agent: naver oauth2.0 test form Host: apis.naver.com Pragma: no-cache Accept: */* Authorization: Bearer Awmvqo;ekmqovkmsld;kmacl;kmwlekcmqvowkevm=

이런 식으로 나오더라. 즉 "Bearer "(공백 한칸 포함)+accessToken한 정보가 나와야함.
그러니 token_type을 받아서 같이 넣어줘야함.

getUserProfile 결과물은 아쉽게도 JSON 이 아니라 XML 형태라서 peerlibrary:xml2json 을 사용.
역시 이게 제일 간단하고 맘이 편함.

https://github.com/acidsound/meteor-accounts-naver
https://github.com/acidsound/meteor-naver

각각 등록 완료.

사용할 땐 간단하게 meteor add spectrum:accounts-naver 하면 된다. 
어짜피 의존성이 있으니 같이 로딩됨.

Meteor쪽은 쉬운데 네이버쪽이 약간 손이갔다.

meteor add accounts-ui 한 뒤 {{> loginButtons}}를 템플릿에 추가해보면
이렇게 나타난다.
다른 accounts-facebook/accounts-twitter 등등과 동일하다.
버튼을 눌러보면



요런 입력창이 나온다.
시키는 대로 https://nid.naver.com/devcenter/register.nhn 로 가서 앱을 앱을 만들자

어플리케이션 이름과 카테고리를 선택한 뒤 일단 web만 찍고 생성하자.
나중에 수정할 수 있다.

"개요"를 보면 Client ID와 Client Secret(보기 버튼을 눌러야 보인다)이 있다.
이걸 복사해서 각각 Meteor쪽 두 개의 박스안에 붙여넣는다.

마지막으로 login Style은 팝업과 리디렉트 기반이 있는데 모바일에서 창이 하나 더 뜨는게 싫은 분은 Redirect-based login을 사용하자.

추가로 네이버쪽 "일반"을 보면 이름/카테고리/로고 이미지가 있는데 아래쪽에 보면 API 상태가 있다.
개발중이면 수동으로 사용가능한 유저를 일일이 멤버관리에서 입력해야하고 서비스 적용으로 하면 모든 네이버 유저들이 사용할 수 있다.
잊지말고 설정해두자.

당연한 얘기지만 Service Configuration package등등과도 호환되니 편하게 사용하자.

댓글

이 블로그의 인기 게시물

세상 간단한 https(+secured websocket): Caddy

nginx, apache2 같은 걸로 매번 certbot 연동을 통해 https 하는게 지겨워서 알아보니 Caddy라는게 있더라. 설치법은 강하게 크기 위해 알아서 해본다. # cat /etc/caddy/Caddyfile your.shitty.site:8123 {   proxy / localhost:9123 {     websocket     transparent   } } 이건 외부에서 8123으로 들어오는 걸 내부적으로 9123로 맞춰서 https 맞춰주는 reverse proxy. 만일 port를 생략하면 # cat /etc/caddy/Caddyfile your.shitty.site {   proxy / localhost:9123 {     websocket     transparent   } } 기본포트인 443으로 되어 https://your.shitty.site 로 접속이 된다. 요새 말썽이던 cloudflare 버리고 netlify domain이랑 caddy를 쓰니까 앓던 이가 빠진 느낌. 이 조합은 당분간 계속 써야겠다 싶다.

저지연 오디오 생성 LLVC 사용기

https://github.com/KoeAI/LLVC 써봄 CUDA 11.8 버전 쓰고 있어 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 VC 없어서 설치 https://wikidocs.net/168848 참조 FAIRSEQ 관련 오류 https://github.com/facebookresearch/fairseq/issues/2908 pip install editdistance  설치 No CUDA runtime is found, using CUDA_HOME='C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8' 오류 멀쩡하게 있는데 안됨. pip install torch==2.1.0+cu118 torchvision==0.16.0+cu118 torchaudio==2.1.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 다시 설치 set DISTUTILS_USE_SDK=1 이게 문젠가 설정하고 재도전 Using cached ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl (118 kB) Building wheels for collected packages: fairseq   Building wheel for fairseq (pyproject.toml) ... error   error: subprocess-exited-with-error   × Building wheel for fairseq (pyproject.toml) did not run successfully.   │ exit code: 1   ╰─> [1829 lines of output]       No CUDA runtime is found, usi...