마지막 H.A 준비 - part2

📅 TIL #74



🎯 Achievement Goals


  • OAuth 구현





👉 OAuth 과제


지난 번 OAuth 과제는 테스트 케이스만 다 통과하고 시간이 없어서 웹 구현까지는 하지 못했다.. 물론 코드스테이츠에서는 테스트 케이스만 다 통과하면 과제 제출을 할 수 있어서 상관없겠지만 그러면 공부하는 의미가 없다고 생각했다.

그래서 이번 주말에 이번 주에 했던 인증 구현 과제는 다 웹 상에서도 작동이 되도록 하겠다고 다짐을 했다!!

어제는 Session을 성공했고, 오늘은 Token과 OAuth를 복습했는데 Token은 쉽게 작동이 되어서 이상없었지만 OAuth에서 작동이 되질 않았다.


oauth2222


이런 식으로 GET /user 하는 부분에서 에러가 나서 로그인이 되질 않았다. GET /user은 클라이언트에서 하는 부분이니까 아무 잘못없는 클라이언트 부분만 뚫어지게 쳐다보며 문제를 찾고 있었다.

그러다가 곰곰이 생각해보니 사용자 정보를 못받아오니 서버에서 애초에 access Token을 못받고 있는게 아닌가 생각이 들었다.

그래서 서버쪽으로 다시 가보았다.


// server: controllers/callback.js
module.exports = async (req, res) => {

  const response = await axios.post('https://github.com/login/oauth/access_token', {
    client_id: clientID,
    client_secret: clientSecret,
    code: req.body.authorizationCode,
  })

  const accessToken = response.data.access_token;
  res.status(200).send({ accessToken: accessToken });
}


사실 이렇게만 봐도 뭐가 잘못되었는지는 깨닫지 못했다. 그러다가 같은 스터디원분이 좀 가공을 하면(?) 작동이 될 거라고 해서 가공을 해보았다.


// server: controllers/callback.js
module.exports = async (req, res) => {

  axios({
    method: 'post',
    url: 'https://github.com/login/oauth/access_token', 
    headers: {
      accept: 'application/json',
    },
    data: {
      client_id: clientID,
      client_secret: clientSecret,
      code: req.body.authorizationCode,
    } 
  }).then((response) => {
    accessToken = response.data.access_token;
    res.status(200).send({ accessToken: accessToken });
  })
}


이렇게 가공을 하고 떨리는 마음으로 서버와 클라이언트 둘 다 npm run start를 해보았다.


OAuth 실습


됐다!!!

진짜 너무 안되서 답답했는데 속이 뻥 뚫린 기분이었다 ㅜㅜㅜ 순기님 감사합니다..

오늘은 Token, OAuth 과제 두 개를 복습하니 벌써 저녁먹을 시간이… 시간 참 빠르다.. 그래도 H.A 시험을 위한 모든 복습은 끝냈다!!

이제 내일 아침 9시부터 시작하는 시험만 잘보면 프로젝트 시작~~!








🙌 느낀점


복습도 다 끝냈고 편한 마음으로 마지막 시험을 치룰 수 있을 것 같다!!

확실히 다이어리를 매일매일 쓰니 효과 만점이다. 코딩 공부를 하면서 항상 일주일계획을 짜고 그 다음 하루 계획을 세부적으로 적어놨는데, 학습 목표가 있으니 어떻게서든 그 목표를 이룰려고 노력했고, 항상 잘 지켜져와서 다행이다!

내가 다이어리 쓰는 습관을 가지고 체계적으로 공부하는 모습을 보고 스터디원분들도 나를 따라하기 시작했다!! 내가 효율을 많이 따지고, 효율적으로 공부를 하려고 하다보니 그 모습이 효과가 있어보였나보다!

스터디원분들이 다이어리의 장점을 알아봐주시니.. 감사할 따름이었다..ㄱㅣ분최고오오

내일 하루도 잘 보내자~~





👊 내일의 TIW(today I Will)

마지막 H.A 시험!!