22/07/18
앞서 배운 Https,Token,OAuth를 실습하는 시간을 가졌다. OAuth를 이용하여 깃허브로 로그인 하는 과제를 풀었는데 많이 어려웠다. 깃허브에서 내 앱을 등록하여 클라이언트 id와 클라이언트 키 를 받아 로그인을 구현하는 서버에 등록시킨다. 내 클라이언트 Authorization code 를 깃허브에서 받아와 옵션을 설정하고 API 요청을 한다음 최종 로그인.
Authorization code 를 받아와 토큰으로 받아온뒤 사용자 정보를 다시 받아와야하는데,
module.exports = async (req, res) => {
const { accessToken } = req.body;
// 클라이언트에서 전달받은 access token를 이용해 사용자의 정보를 가져옵니다. 다음 링크를 참고하세요.
// https://docs.github.com/en/rest/users/users#get-the-authenticated-user
// 이때 요청하는 서버는 Github의 Authorization 서버가 아닌 Resource Server입니다.
return axios
.get('https://api.github.com/user', {
headers: {
Authorization: `token ${accessToken}`,
},
})
.then((res) => res.data)
.then((githubUserData) => {
res.send({ githubUserData, serverResource });
})
.catch((e) => {
res.sendStatus(403);
});
};
Authorization code 를 accressToken에 할당시키고 깃허브에 요청을 하면 유저정보를 받아올 수 있다. 근데 accessToken 값이 조회가 자꾸 안되어서 진행이 안되었다.
분명 콘솔로 Authorization code 값이 잘 확인이 되는데 서버에서 왜 제대로 요청이 안되는지 잘 모르겠다.