기본 콘텐츠로 건너뛰기

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를 쓰니까 앓던 이가 빠진 느낌. 이 조합은 당분간 계속 써야겠다 싶다.

느려터진 안드로이드 에뮬은 버리고 VM을 쓰자.

iOS개발 환경이 안드로이드보다 우월점은 여러가지가 있겠지만 개인적으로 가장 큰부분이라고 생각하는 점이 iOS Simulator 의 넘사벽 속도다. 사실 iOS 의 경우 Emulator 가 아니라 Simulator 라는 훼이크를 써서 그런건데. 하드웨어+소프트웨어를 같이 하는 회사만이 쓸 수 있는 필살기라 볼 수 있다. 반면 안드로이드의 경우 ARM 에뮬레이터를 사용하는데 이게 참 못만들었다. 플스에뮬이나 GBA에뮬 반정도만 만들어도 써줄텐데 아직 갈길이 멀다. 그래서 구시렁 거리면서 하드웨어를 연결해서 테스트를 하고 있는데 역시 USB연결하는 건 불편하고 apk 를 전송하는 과정도 그다지 빠르지 않아서 개발 생산성이 월등히 나아지지는 않는다. 루팅을 하면 wifi 를 통해 apk 를 인스톨 할 수 있다고 해서 몇 가지를 해보았으나 잘 모르겠지만 인스톨까진 잘 되었는데 디버깅 모드로 실행이 되지 않아 그만두었다. 게다가 전송속도도 USB보다 wifi가 느리고 맘에 들지 않더라. 그러던중 stackoverflow.com(늘 신세지고 있습니다) 에서 "VM으로 안드로이드를 띄워서 adb connect 하면 좋아!" 라는 글에 눈이 번쩍. 시행착오를 몇번 했지만 의외로 간단하더라. 1. VMWare건 VirtualBox건 상관없다. VM호스트를 준비하자. 2. http://www.android-x86.org/download 로 가서  Deprecated x86 2.2 generic  을 받자. Q) 왜 Deprecated 인 2.2 generic 을 받나요. Deprecated는 쓰면 안되는 거 아님? A) http://mariuz.android-dev.ro/vm.iso.7z 도 있다고 한다. http://www.android-x86.org/download 에 있는 요즘 것들은 죄다 안된다. 3. 죄다 일단 Default 설정에 yes yes 하고 설치한다. 한글 문서가 필요한 분은 ...