[Dev Log] 종화/10.30
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
> ### 오늘은 어떻게 프로젝트에 기여했나요?
> 구글로그인을 구현해봤습니다.
>
> ### 오늘의 프로젝트에서 힘든 점은 무엇인가요?
> 구글로그인 시 어려웠던 점들은 2가지 정도가 있었습니다.
>
> 1. authCode를 받아올 때의 요청 방법이 카카오와 조금 다른 점.
> 2. authCode로 받아온 accessToken을 활용해서 유저의 정보를 받아올 때 요청 방법이 카카오와 조금 다른 점.
>
> ```js
> const KAKAO_LOGIN_URL = 'https://kauth.kakao.com/oauth/authorize?client_id={클라이언트아이디}&redirect_uri=http://localhost:3000/&response_type=code'
> const kakaoLoginHandler = async () => {
> window.location.assign(KAKAO_LOGIN_URL);
> }
>
> const GOOGLE_LOGIN_URL = 'https://accounts.google.com/o/oauth2/v2/auth?client_id={클라이언트아이디}&redirect_uri=http://localhost:3000/&response_type=code&scope=https://www.googleapis.com/auth/userinfo.profile&include_granted_scopes=true'
> const googleLoginHandler = async () => {
> window.location.assign(GOOGLE_LOGIN_URL);
> }
>
> // 카카오로 authCode를 받아올때에는 url뒤에 순차적으로 client_id, redirect_uri, response_type만 적어주는 방법으로 했었는데,
> // 구글로 authCode를 받아올때에는 url뒤에 순차적으로 client_id, redirect_uri, response_type, scope, include_granted_scopes를 다 설정해줬어야 했다.
> // 그리고 accessToken 유저정보를 받아오는 부분도 어떻게 보면 이어지는 내용이라 볼 수 있겠다.
> // 위에서 말했던 scope와 include_granted_scopes가 없다면 유저 정보를 받아올때 내가 원했던 유저이메일과 유저이름(닉네임)을 다 받아올 수 없었기 때문이다.
> // 간단히 말하자면 구글 개발자 설정에서 내가 만든 프로젝트에 요청 시 응답으로 전해줄 수 있는 유저의 관한 항목들을
> // 유저의 이메일과 유저의 이름(닉네임) 이라고 설정해놨었더라도,
> // scope라는 것이 애초에 내가 받아올 수 있는 유저의 정보에 대한 설정이라고 볼 수 있어서,
> // 만약 내가 scope 설정을 https://www.googleapis.com/auth/userinfo.profile 로만 해놨다면,
> // 유저의 프로필만 받아올 수 있다는 말이다(문제는 이 프로필이라는것에 유저의 이메일이 없다는것).
> // 분명 구글의 개발자 설정에 내가 만든 프로젝트에서는 유저의 이메일과 이름을 둘 다 응답으로 전해줄 수 있다고 설정해놨더라도
> // 저 scope에 https://www.googleapis.com/auth/userinfo.profile 로만 해놨다면 유저의 이메일을 받아올 수 없는 것이다(프로필에 유저의 이름만 있음).
> // 유저의 이메일까지 다 같이 받아오려면 (구글 개발자 설정에서 설정해놓은 넘겨줄 수 있는 유저의 정보들을 다 받아오려면),
> // scope 설정 뒤에 include_granted_scopes 를 true로 같이 설정해놔야 유저 정보를 받아올 때 이메일과 이름 둘 다 받아올 수 있는것이다.
> ```
>
> ### 내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?
> * [ ] 익명게시판에 대한 서버쪽 코드 작성해보기
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.