node.js 62

Node.js 생활코딩 정리 – facebook 인증 세부 권한 설정

facebook 인증 Permission(페이스북 세부 권한 설정) 다음 예제는 app_multi_user_facebook2.js로 한다. 사용자 이메일을 가져올 수 있다. app_multi_user_facebook2.js에서 다음 부분을 수정해서 페이스북 사용자의 email을 가져올 수 있다. app.get('/auth/facebook', passport.authenticate('facebook', {scope:'email'}//scope에서 페이스북에서 email을 가져올 수 있음. )); //facebook strategy 등록 부분 passport.use(new FacebookStrategy({ clientID: '381822035542311',//개발자 페이지에서 APP ID 값 clientSe..

Node.js 생활코딩 정리 – Federation Authentication (타사 인증) 페이스북으로 인증하기

Federation Authentication(타사 인증) 페이스북 로그인 연동 하는 법을 알아보자 https://developers.facebook.com/ 로 가서 개발자 등록을 먼저 해야한다. 웹사이트 클릭 후 이름 쓰고 Create New Facebook App ID 클릭 그러면 다음과 같은 페이지가 나온다 그다음 아래와 같이 URL을 쓴다. 그 다음 Login을 클릭한다. 설명 페이지가 나온다. 마이앱에 가면 이런게 나온다. 다시 passportjs 사이트로 가면 다음 페이지를 볼 수 있다. npm install passort-facebook -–save를 해야한다. 그리고 app_multi_user_passport.js 를 복사해서 app_multi_user_facebook.js를 생성한다. ..

Node.js 생활코딩 정리 – Passportjs 로그아웃 구현

Passportjs 로그아웃 구현 메뉴얼의 Login 과 Logout을 읽어보면 passport.authenticate() 미들웨어는 req.login()을 자동으로 호출한다고 써있고, req.login()함수는 signup(회원가입)할때 주요하게 사용된다고 메뉴얼에 써있다. 그리고 req.login함수가 끝나면 req.user 객체가 자동으로 생성됨을 알 수 있다. 윗 설명을 읽어보면 req.logout()이라는 메소드를 호출하면 req.user에 들어있는 로그인 세션이 삭제된다는 뜻이다. 즉 이 메소드는 로그아웃할 때 호출해야 한다. 소스가 수정된 부분은 노란색으로 표시함. var express = require('express'); var session = require('express-sessio..

Node.js 생활코딩 정리 – Passportjs 인증 모듈 사용하기

Passportjs – 인증 모듈 사용하기 Federation 인증이란 카톡이나 페북으로 가입을 시키는 것을 말한다. 가장 대표적인 인증 모듈인 Passportjs를 사용하는 법을 알아보자.( http://passportjs.org/ 사이트 참고) 홈페이지에 들어가서 strategies로 가보면 다음과 같이 카카오 passportjs인증 모듈도 찾을 수 있다. 하지만 이번에는 페이스북이나 카카오를 안하고 passport-local로 한다. 아래처럼 반드시 name을 username, password로 해야한다. 다음 라우트를 보면 다음과 같이 나온다. strategies를 참고해서 코딩을 해야 한다. app_multi_user_passport.js var express = require('express'..

Node.js 생활코딩 정리 – Password Key Stretching 기법(PBKDF2 도입)

Security – Password Key Stretching 기법 입력한 패스워드의 다이제스트를 생성하고, 생성된 다이제스트를 입력 값으로 하여 다이제스트를 생성하고, 또 이를 반복하는 방법으로 다이제스트를 생성할 수도 있다. 이렇게 하면 입력한 패스워드를 동일한 횟수만큼 해시해야만 입력한 패스워드의 일치 여부를 확인할 수 있다. 이것이 기본적인 키 스트레칭 과정이다. 즉 암호화를 반복하는 것 PBKDF2(Password-Based Key Derivation Function)의 도입 PBKDF2는 salt를 적용하고 해시함수의 반복횟수를 임의로 선택할 수 있다. https://www.npmjs.com/package/pbkdf2-password에서 보면 pbkdf2-password모듈을 사용해야 한다. ..

Node.js 생활코딩 정리 – Password 암호화 방법

Security – Password(비밀번호 보안) 비밀번호를 암호화하기 위해 MD5 해쉬 암호화 모듈을 설치해야한다. npm install md5 node var md5 = require('md5'); md5('javascript') 를 순서대로 쳐보면 javascript를 해쉬암호화한 값이 나온다. 참고로 MD5는 단방향 암호알고리즘이므로 이 암호화된 값으로 원래 값을 돌려놓을 수 없다. 자 이제 MD5를 알았으니 본격적인 예제를 위해 npm install md5 -–save를 치고 패키지에 포함시킨다. var md5 = require('md5');를 추가해서 md5 모듈을 사용한다 다시 아래와 같이 치고 해쉬값을 복사해서 프로젝트(app_multi_user_file.js)의 여기에 복붙을 한다.(원..

Node.js 생활코딩 정리 – 인증 기능 추가하기

authentication 인증 기능 추가하기 app_multi_user_file.js 다음 두 군데가 수정되었다. 이번에는 사용자가 입력한 아이디가 실제 users배열에 있는지 확인 후 로그인을 시키는 것이다. post부분은 회원가입 후 좀 더 이쁘게 바꾸기만 했다. app.post('/auth/register', function(req, res){ var user = { username:req.body.username, password:req.body.password, displayName:req.body.displayName }; users.push(user);//입력한 값을 users배열 맨뒤에 추가함 //res.send(users);//한번 뿌려봄 req.session.displayName = ..

Node.js 생활코딩 정리 – 다중 사용자 시스템 만들기

다중 사용자 시스템 만들기 app_session_login_file.js를 복사해서 사용한다. app_multi_user_file.js var express = require('express'); var session = require('express-session');//세션 사용을 위한 모듈 var bodyParser = require('body-parser');//POST 방식 전송을 위해서 필요함 var app = express(); var FileStore = require('session-file-store')(session);//session 파일 스토어를 위해 사용 app.use(bodyParser.urlencoded({extended: false}));//미들웨어 등록부분 //resave..

Node.js 생활코딩 정리 – 세션(session)을 데이터베이스(mysql)에 저장하기

Session 9 : Session store - mysql 세션을 mysql에 저장하기 위해서는 express-mysql-session을 설치해야 한다. npm install express-mysql-session –save 다음 예제는 app_session_login.js를 복사해서 쓴다. app_session_login_mysql.js var express = require('express'); var session = require('express-session'); var bodyParser = require('body-parser');//POST 방식 전송을 위해서 필요함 var MySQLStore = require('express-mysql-session')(session); var app ..

Node.js 생활코딩 정리 – 세션(session)을 파일에 저장하기

Session 8 : Session store - file 세션 데이터를 파일에 저장하기 위해서는 session-file-store를 설치해야한다. npm install session-file-store --save 다음 기존의 app_session_login.js를 이용한다. 다음과 같이 var FileStore 부분을 추가하고 app.use(session( 에서 store:new FileStore()를 추가한다. app_session_login_file.js var express = require('express'); var session = require('express-session');//세션 사용을 위한 모듈 var bodyParser = require('body-parser');//POST ..

반응형