You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
처음 뵙겠습니다. 현재 부스트캠프 웹·모바일 멤버십을 진행 중인 7기 부스트캠퍼입니다. 6기 선배님의 프로젝트를 살펴보다, OAuth를 공부하면서 참고자료를 찾던 중 버그가 일어날 것 같은 코드를 찾았습니다.
exportconstloginCallback=async(req: Request,res: Response)=>{constauthorizationToken=req.query.code;// 유저가 이를 거부하면 code가 발급되지 않음constaccessToken=awaitgetAccessToken(authorizationToken);constuserInfo=awaitgetUserInfo(accessToken);constuser=awaitUser.findOne({name: userInfo.login});
사용자가 최초에 깃허브 로그인을 수행한 뒤, 권한 허가 창에서 허가나 거부를 클릭하면 /api/login/callback으로 리다이렉트되면서 서버에 요청이 들어오게 되는데, 사용자가 허가를 하면 정상적으로 처리되지만, 사용자가 권한요청을 거부하면 위의 사진과 같이 서버 내부에서 에러가 터지면서 사용자에게 504 에러가 띄워지게 됩니다. 만약 로컬에서 테스트했으면 서버 자체가 에러를 띄우면서 중단되었을 겁니다.
에러의 원인
exportconstloginCallback=async(req: Request,res: Response)=>{constauthorizationToken=req.query.code;// 유저가 이를 거부하면 code가 발급되지 않음constaccessToken=awaitgetAccessToken(authorizationToken);constuserInfo=awaitgetUserInfo(accessToken);constuser=awaitUser.findOne({name: userInfo.login});
사용자가 깃허브 로그인을 하고, 권한 요청 창에서 요청을 거부합니다.
콜백 url의 쿼리스트링으로 error, error_description, error_uri가 첨부되며, code는 쿼리스트링의 키로 존재하지 않습니다. 이 때 error의 값은 access_denied가 됩니다.
처음 뵙겠습니다. 현재 부스트캠프 웹·모바일 멤버십을 진행 중인 7기 부스트캠퍼입니다. 6기 선배님의 프로젝트를 살펴보다, OAuth를 공부하면서 참고자료를 찾던 중 버그가 일어날 것 같은 코드를 찾았습니다.
사용자가 최초에 깃허브 로그인을 수행한 뒤, 권한 허가 창에서 허가나 거부를 클릭하면 /api/login/callback으로 리다이렉트되면서 서버에 요청이 들어오게 되는데, 사용자가 허가를 하면 정상적으로 처리되지만, 사용자가 권한요청을 거부하면 위의 사진과 같이 서버 내부에서 에러가 터지면서 사용자에게 504 에러가 띄워지게 됩니다. 만약 로컬에서 테스트했으면 서버 자체가 에러를 띄우면서 중단되었을 겁니다.
에러의 원인
authorizationToken
은 undefined가 됩니다.getAccessToken
함수에 undefined가 매개변수로 들어갑니다.getAccessToken
은 undefined를 반환합니다.getUserInfo
함수를 호출하는 과정에서 headers의 Authorization 필드는Bearer undefined
가 되고, 서버는 401 에러를 반환합니다.해당 부분에 대한 예외처리를 진행한다면 오류를 해결할 수 있을 것 같습니다.
The text was updated successfully, but these errors were encountered: