개발자 카페를 둘러보다가 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 |