기본 콘텐츠로 건너뛰기

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등등과도 호환되니 편하게 사용하자.

이 블로그의 인기 게시물

Mac 주의 - 약간 빡치는 git 대소문자 변환 파일명 변환(renaming)하는 법

Mac에서 종종 화나는 일 중 하나가 파일 시스템이 대소문자를 구분하지 않는 점이다.
가령, A.png를 a.png로 바꿔야할 경우 HFS 기준으론 전혀 바뀐 점이 없는 걸로 인식하는데 다소 화가난다.
하지만, 방법이 없는 것은 아닌데

A.png를 임의의 다른 파일로 바꾼다. (ex. A_.png)1에서 바꾼 상태에서 staging 한다. (git add A_.png)1의 파일을 다시 원래 바꾸려고 했던 파일로 바꾼다. (mv A_.png a.png)3을 다시 staging 한다. (git add a.png)commit 한다.https://stackoverflow.com/a/40307511/880991 에서 답변해준 Chris Barr 님에게 감사를.
* 추가

실제로 해보니 git mv --force A.png a.png 가 더 간단하다. 이는 바로 staging 영역에 add까지 해준다.

graphql 연습 /w launchpad

https://launchpad.graphql.com/mw9wkzv99
단순 전체쿼리+조건쿼리+추가

http://graphql.org/graphql-js/passing-arguments/
참고. random ID는 crypto 1.0.1 사용
  type Query {
    Members: [member]
    getMember(id: ID!): member
  }
  type member {
    id: ID!
    text: String
  }
  input memberInput {
    text: String
  }
  type Mutation {
    addMember(member: memberInput): member
  } SQL 정의. facebook 쪽은 스트링에 지지는 거 진짜 좋아하네. *.gql 파일이 있다고 하니 이해해주자.
resolver는 var buffer = [];
const resolvers = {
  Query: {
    Members: (root, args, context) => {
      return buffer;
    },
    getMember: (id)=> {
      return buffer.find(o=>o.id)
    }
  },
  Mutation: {
    addMember(_, {member}) {
      const mm = { ...member, id:randomBytes(10).toString('hex') };
      buffer.push(mm);
      return mm;
    }
  }
}; 평범 평범.
https://dev-blog.apollodata.com/tutorial-graphql-subscriptions-server-side-e51c32dc2951 다음으로 pub/sub 연습.
https://launchpad.graphql.com/xvn94n3ql   type Subscription {
    memberAdded: member
  } member가 added되는 순간을 감시. imp…

즐거운 Online Prototyping Tool 들

jsbin, codepen, jsfiddle 이런 것들은 일단 생략. 너무 유명한 것들이라.

https://launchpad.graphql.com - node.js 기반 graphQL 연습장. 이것만으로도 충분히 훌륭한 백엔드
https://codesandbox.io/ npm 사용이 가능한 클라이언트 사이드 연습장. webpackbin이 너무 문제가 많아서 찾아본 것.

https://scrimba.com 이건 codesandbox+ asciinema(https://asciinema.org/) 같은 느낌인데 키 녹화와 음성 녹화 기능이 추가되었다. 다 좋은데 화살표 키로 빨리감기 뒤로감기 기능이 안되고 익스포트(youtube등)으로 지원이 없는게 아쉽다.

이 둘이 만나면? https://codesandbox.io/s/jvlrl98xw3?from-embed
뭐야 이거 무서워 하지마 ㄷㄷ;  graphql+react-native-web(부왘ㅋㅋ)

https://repl.it/languages 전통을 자랑하는 REPL 도구. 지원 언어 종류가 -_-;;;;;

https://tio.run/# repl.it? 장난함? 얘는 지원 언어가 무려 386종류. J랑 아희도 있다.

https://play.golang.org/ 즐거운 go playground. 소스 포멧팅 넘 좋아.

http://decaffeinate-project.org/repl/ 최고의 coffeescript REPL. 원래 용도는 coffee를 ecma6코드로 바꾸는 것이지만...

https://scaphold.io
https://www.graph.cool/ graphql backend service. scaphold.io는 설치도 필요없는 클라우드. graphcool은 호스팅+클라우드 다있음. 둘 다 막상막하. 푸쉬서버도 되고 뭐 미친득.

https://glitch.com/ gomix에서 결국 glitch로 안착.  node.js

https://www.shadertoy.com 잘하고 싶다! 쉐이다! 오디오도 된다!

http:/…