codestates / ETON-server

0 stars 0 forks source link

[Task] Controller - LogIn - Social - 로직 점검 및 구현 #31

Open ddubbu opened 3 years ago

ddubbu commented 3 years ago

Task Card

Assignee: @aesopfrom0

Job Description

결과물

aesopfrom0 commented 3 years ago

소셜로그인 로직

email 이 null 인 경우 임의로 만들어서 가입

GET /users/signin/github

클라이언트 로그인 페이지에서 'continue with GitHub' 버튼을 눌렀을 때 GET /users/signin/github 요청하면 리디렉트

Github으로부터 authorization 코드 전달 받음

https://github.com/login/oauth/authorize?client_id=${client_id}&scope=user

했을 때 다음으로 리디렉트

GET /users/signin/github/callback

이때 req.query.code에 깃헙에서 받은 코드가 담겨있음.

받은 데이터 중 유저 정보 관련 추출

단, github의 경우 이메일이 private info로 분류되어 있어 사용자가 프로필 정보에 이메일을 입력하지 않으면 열람 불가능하다.

해당 유저의 정보를 불러와 access, refresh token 발급

만약 해당 유저가 회원 DB에 없다면 유저를 등록한 뒤에 토큰 발급

ddubbu commented 3 years ago

논의사항

authorization 코드 로직 - 서버에서 안되나?

aesopfrom0 commented 3 years ago
스크린샷 2021-02-08 14 00 26

클라이언트에서 코드를 따로 받지 않고 서버에 GET 요청부터 시작하는 위 로직을 따랐을 때 발생하는 에러 코드입니다.

ddubbu commented 3 years ago

baic/login 도 안되네

Access to XMLHttpRequest at 'https://geteton.ga/users/signin/basic' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
ddubbu commented 3 years ago

해결방안

  1. /socialLogin get 요청 + body -> post 요청으로 바꿈
  2. 에러 > (client) cors 에러 500, (server) server 401 >> 통신은 됨 image
  3. 서버 로그 보면서 해결

한거/할거

(완료) signin logout

socialLogin

aesopfrom0 commented 3 years ago

GitHug Oauth 설정 탭

https://github.com/settings/profile > developer settings 에서

스크린샷 2021-02-08 16 38 14
aesopfrom0 commented 3 years ago
스크린샷 2021-02-08 17 39 23 스크린샷 2021-02-08 17 39 30

해당 코드로 정보 불러오는 부분 확인했습니다.

ddubbu commented 3 years ago

2월 9일 refreshToken, cookie,cors 관련 EC2 cookie 오지 않음.

결론 > refreshToken 삭제

ddubbu commented 3 years ago

2월 9일 server - client 연결