Back-End/백엔드 관련 정리

security Error 처리 - 부제: 너두 할 수 있어!

얄루몬 2022. 12. 8. 16:05

[git oauth2 rest api 인증 처리 중 발생 오류에 대한 대처법]

1. 401 unauthorized error 해결

1-1) 문제 상황 : 해당 오류가 발생하고 구글에 찾아본 결과 로직에는 문제가 없으나 유효한 인증 자격이 없어서 이를 서버측에서 처리해주지 못한다고 나왔다.

1-2) 해결법 : 이를 처리하기 위해서 git에서 제공하는 공식 DOC을 보았고 이 양식에 맞게 코드를 고쳐주었다. 

https://docs.github.com/ko/developers/apps/building-oauth-apps/authorizing-oauth-apps

 

Authorizing OAuth Apps - GitHub Docs

GitHub's OAuth implementation supports the standard authorization code grant type and the OAuth 2.0 Device Authorization Grant for apps that don't have access to a web browser. If you want to skip authorizing your app in the standard way, such as when test

docs.github.com

이때 주의해야 하는 점은 깃에서 주고 있는 모든 문자를 맞춰서 넣어주고 해야한다는 점(uri 설정하는 부분도 header에 토큰을 넣어주는 작업도 모두 위의 양식과 똑같이 해주어야 이 오류가 생기지 않습니다.)


2. NullPointException 관련 오류

(1) git에서 email 정보를 넘겨주지 않는 문제

2-1) 문제 상황(1) : scope로 넘겨준 email을 받아오지 못하는 문제가 발생하였다.

https://stackoverflow.com/questions/35373995/github-user-email-is-null-despite-useremail-scope

 

Github user email is null, despite user:email scope

I am following Github’s OAuth flow, and obtaining an access token that gives me access to the user’s email scope. When I exchange a code for an access token, using the https://github.com/login/oauth/

stackoverflow.com

2-2) 해결법: git 설정을 위를 참고해서 변경해주었더니 해결 되었다. 

 

(2) 내부로직에서 발생한 NullPointException

2-3) 문제 상황(2): email 값으로 찾아오는 값이 null 값이 나서 오류가 생겼다.

2-4) 해결법: 해당 로직을 객체로만 받아 올 것이 아닌 Optional을 써서 받아오고 처리해주었다.