기본 콘텐츠로 건너뛰기

라벨이 auth인 게시물 표시

외부에서 REST로 Meteor 서버에 접근할 때 인증(Authentication) 팁 - Picker 사용

Meteor 서버와 외부 서버끼리 연동할 일이 간혹 있다. 혹은, 정적 웹페이지를 구축하고 REST로 Meteor 서버에 접근하고 싶을 수도 있을 것이다. 가령 /image 라는 경로에 POST로 그림 파일을 올리고자 하면 클라이언트 쪽에서 보내는 것은 문제가 아니지만 사용자를 어떻게 인증할 것인가에 대한 문제가 생긴다. 그렇다고 매번 POST를 보낼 때 마다 사용자 아이디와 패스워드를 올려서 검증하는 것도 번거로울 뿐만 아니라 보안상 좋지 않다. Meteor 의 경우 최초 사용자 인증이 끝나면 loginToken이라는 값을 반환하여 이 값으로 다음번에 인증을 할 수 있는데 이것은 사용자 계정 정보 curl -XPOST 'localhost:3000/image' -H "x-user-auth:< 지난번 로그인 때 저장한 loginToken >" -F "image=@/xxx/xxx/xxx/xxx.gif" 로 호출한다고 가정했을때 POST에 대한 filter 를 설정하고 API=   GET: Picker.filter (req, res)-> req.method is "GET"   POST: Picker.filter (req, res)-> req.method is "POST"   DELETE: Picker.filter (req, res)-> req.method is "DELETE" 서버 라우팅을 해준다. API.POST.route '/image', (params, req, res)->   token = req.headers['x-user-auth']   hashedToken = Accounts._hashLoginToken(token)   user = Meteor.users.findOne 'services.resume.loginTokens.hashedToken': ...

Meteor의 Login유지 방식

역시 마루타는 atmosphere이다. 한번 로그인 한 사이트에 갈때마다 여러번 로그인 하는 건 세련되지 않다. 어떤식으로 Meteor에서 로그인 유지를 하는지 보자. 잡았다 요놈! Local Storage에 저장한다. 이게 Session 객체인지 Local Storage를 삭제하니까 실시간으로 로그아웃이 해제된다 + _+)!!! Meteor.loginToken으로 저장하고 확인하는구나. https://github.com/meteor/meteor/blob/devel/packages/accounts-base/localstorage_token.js 내용을 보니 localStroage에 대한 fallback( https://github.com/meteor/meteor/blob/devel/packages/localstorage/localstorage.js )을 따로 만들어 놓았다. 켁, 소스를 보니 IE일 경우 userData를 사용하네! http://msdn.microsoft.com/en-us/library/ms533007(v=vs.85).aspx 관련 내용 링크.

드디어 meteor 0.5.0!

이전에 썼던 auth 관련 글은 죄다 잊으십시오. 그냥 meteor update 하면 됩니다. Accounts 기능이 정식으로 들어갔습니다. 일반 로그인, OAuth 로그인이 정말 간편하게 됩니다. 사용법은  http://docs.meteor.com/#accounts_api  참조하세요. 만세! 만세! 만만세! screencast 도 꼭 보세요. 두번 보세요. 아니 세번 보세요. 만세! 만세! 만만세!

Meteor auth branch 변경 사항. 0.4.1 버전 9/22 기준

http://spectrumdig.blogspot.kr/2012/08/meteor-039.html  이후로 업데이트가 좀 되었다. api key/secret 을 더 이상 소스 안에서 관리 안함. accounts-ui 를 사용할 것을 권장하고 있다. $ meteor mongo 로 접근 > db["accounts._loginServiceConfiguration"].find() { "service" : "facebook", "appId" : " appID ", "secret" : " app Secret ", "_id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx" } 이와 같은 형태로 설정. 재설정시 서비스 명을 기준으로 remove > db["accounts._loginServiceConfiguration"].remove({service:"facebook"}) 그룹스의 글을 일단 옮겨와 본다. 기존에 setSecret method 및 config method 는 전부 지우고 Meteor.accounts.configuration collection 에 넣으라는 소리를 하는데 그것만으론 안된다. appID하고 appSecret은 지우고 collection 에 넣든 accounts-ui 를 써서 다시 지정했다고 해도 OAuth 인증 후 callback 으로 돌아오는 URL이 무조건 localhost:3000으로 되는 오류가 있는데 ROOT_URL 환경변수를 어플리케이션의 URL로 설정하던가 __meteor_runtime_config__.ROOT_URL = "http://<callback 받을 어플리케이션 URL>" ; 로 서버쪽 startup function 안쪽에 넣던가 하라고 한다. ...

meteor 0.3.9 에서 사용자 인증을 써보자.

예전에 everyAuth 에 대한 글을 쓴적이 있는데 https://github.com/meteor/meteor/wiki/Getting-Started-with-Auth meteor wiki에 위와 같은 글이 있더라. 발빠르다 meteor. 투자받더니 탄력이 붙었는지 쭉쭉 잘나가는군. 일단 meteor 설치부터 다시하자. 이전에 Quick start 가이드대로 curl https://install.meteor.com | /bin/sh 이렇게 설치했지만. 이번엔 git 에서 auth Branch를 따서 갈 것이므로 수동 설치하자. git clone git://github.com/meteor/meteor.git cd meteor 수동설치래봤자 적절한 곳에 clone 하고 인스톨 하는게 전부인데. auth는 다른 branch에 있기 때문에 일단 clone 하고 해당 경로에 진입만한 상태에서 git branch -r 로 리모트 브랜치를 확인해보자   origin/HEAD -> origin/master   origin/auth   origin/auth-email   origin/auth-test-isolation   origin/auth-twitter   origin/avital   origin/avital-remove   origin/avital-watch   origin/david-handlebars   origin/dev-bundle-bump   origin/devel   origin/email   origin/forms   origin/jade   origin/master   origin/release-0.1   origin/release-0.1-templates   origin/spark   origin/spiderable ...