기본 콘텐츠로 건너뛰기

7월, 2015의 게시물 표시

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}}를 템플릿에 추가해보면
이렇게 …

짧은 Crosswalk 사용기

HTML5 + js 를 UI로 사용하는 앱을 만들때 제일 당혹스러운 점은 크로스플랫폼으로 사용하기 위해 같은 기준인 UI 렌더러를 쓰는 목적이었는데도 불구하고 파편화가 매우 심각하다는 점이다.
해상도 같은 건 논외로 치고 공통으로 사용하는 WebView 시스템 컴포넌트가 똑같은 "Modern Browser"가 아니라는 점이다.
심지어 같은 OS라고 해도 버전별로 다르다는 건 문제가 크다.
그래서 canvas만 가지고 떼어내서 만들까 어쩔까하고 고민하면서 검색 중 https://crosswalk-project.org/ 프로젝트를 발견.
webRTC(https://github.com/alongubkin/phonertc)나 webAudio(https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/PlayingandSynthesizingSounds/PlayingandSynthesizingSounds.html)같은 것들도 있지만 가장 큰 관심사는 iOS에서 safari가 아니라 chrome 일지가 첫번째.

첫번째 시도.

cordova platform add ios cordova run ios
Safari에서 확인. 기존 mobile safari임.
cordova add cordova plugin add cordova-plugin-crosswalk-webview
소스 확인. 역시 WKWebView는 없음. 없다고 했는데 확인사살.
그러면 https://crosswalk-project.org/documentation/ios/quick_start_guide.html 이렇게 소스코드를 아예 받아서 해볼 수 밖에 없다. git clone https://github.com/crosswalk-project/crosswalk-ios.git cd crosswalk-ios/ git submodule update --init --recursive
third…