티스토리 뷰

TIL

2020-06-18 TIL

Hoon1994 2020. 6. 18. 12:51

 

개발자 카페를 둘러보다가 CORS에 대한 내용을 봤었는데, 

CORS CORS 들어보기만 했지, 정확한 뜻을 이해하지 못하고 있던 것 같아 조금 더 정보를 찾아봤다.

 

일반적으로 https://domain-a.com 에서 https://domain-b.com 자료를 요청하는경우 불가능하다.

왜 불가능할까? 동일출처 정책에 의해서 같은 도메인인 경우에만 자료 요청이 가능하고, 다른 도메인으로 

요청하는 경우 가능하지 않다.

 

하지만, 해당 도메인을 CORS 허용 해준다면, 자료를 가지고 올 수 있다.

CORS는 Cross-Origin Resource Sharing의 약자다. 

 

그렇다면 허용을 어떻게 해줄 수 있을까? 

 

서버에서 Access-control-allow-origin 설정을 통해 할 수 있다고 한다. 

이 부분은 아직 잘 모르니, 추후 더 공부해서 올려봐야겠다. 

 

#NodeJS 

 

오늘은 passport github 를 이용해서 github 로그인을 구현하려고 한다.

먼저 npm i passport-github 로 설치한다. 

 

import passportGithub from 'passport-github';

export const githubLoginCallback = (accessToken, refreshToken, profile, cb) => {
  console.log(accessToken, refreshToken, profile, cb);
};

passport.use(new passportGithub({
  clientID: process.env.GH_ID,
  clientSecret: process.env.GH_SECRET,
  callbackURL: "http://localhost:4000//auth/github/callback"
},
  githubLoginCallback
))

 

passport.use로 import한 passportGithub를 넣어주고, 클라이언트 ID, Secret, callbackURL을 넣어준다. 

그 후 콜백 함수까지 넣어주면 된다. 

 

http://www.passportjs.org/packages/passport-github/

 

사용법은 위 페이지에 자세하게 나와있다. 

 

// github Router 추가
const GITHUB = "/auth/github";
const GITHUB_CALLBACK = "/auth/github/callback";

// github 접근 시 실행 함수
export const githubLogin = passport.authenticate("github");

// github auth가 성공할 경우 실행할 함수 
export const postGithubLogin = (req, res) => {
  res.send(routes.home);
};

// github 접근 시 githubLogin 실행 
globalRouter.get(routes.gitHub, githubLogin);

// callback 접근 시, authenticate github 실행 후 승인되면 postGithubLogin 실행
globalRouter.get(routes.githubCallback, passport.authenticate("github", { failureRedirect: "/login" }), postGithubLogin);

 

 

현재는 githubLoginCallback 함수에서 console 만 띄어주고 있기 때문에 로그인이 가능하진 않다. 

오늘은 여기까지! 

'TIL' 카테고리의 다른 글

2020-06-22 TIL  (0) 2020.06.22
2020-06-19 TIL  (0) 2020.06.19
2020-06-17 Node.js & MongoDB  (0) 2020.06.17
2020-06-09 TDD  (0) 2020.06.09
2020-06-04 TDD & NodeJs  (0) 2020.06.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함