최근 구글 Oauth2 인증기능을 구현할 일이 있었는데, 한 번 정리해보고자 쓴다.
OpenID Connect 인증 절차를 구현했는데.. 뭔가 찜찜한 일이 발생했다. 구글 공식문서에서 sub는 항상 가져오는 값으로, 사용자의 식별자를 의미하며 모든 구글 계정에서 고유하며 재사용되지 않는다고 적혀있다.
따라서 나는 이 정보를 우리 서버 DB에 저장하여, 고유한 사용자를 판별할려고 하는데, 여러가지 인증절차를 해지하고 다시 등록하는 과정에서 sub의 값이 동일한 구글 계정임에도 바뀐다는 것을 확인..
stackoverflow에 나와 비슷한 고민을 한 질문글이 있다.
https://stackoverflow.com/questions/35343629/google-and-facebook-social-login-does-sub-change
한가지 추측은 이것이 발급된 클라이언트 ID에 따라서 바뀔 수도 있냐는 것이다. 만약 바뀐다면 큰 문제이고. 로직자체를 수정해야 되는 부분이고..사실 다른 글이나 문서에도 비슷한 방식으로 인증절차를 처리하는 경우가 많아서, 이 문제는 아닌 것 같은데.. 단순히 내가 로직을 잘못 짜서 DB에 잘못 저장한 경우의 수일 뿐인가? 이것은 좀 더 알아보아야 겠다..
Google search console 등록
https://developers.google.com/identity/openid-connect/openid-connect#obtainuserinfo
https://developers.google.com/identity/protocols/oauth2
https://www.oauth.com/oauth2-servers/signing-in-with-google/verifying-the-user-info/
https://tecoble.techcourse.co.kr/post/2022-10-24-openID-Oauth/
https://developers.google.com/identity/branding-guidelines
https://developers.facebook.com/?locale=ko_KR
페이스북 개발자 계정 생성하시고 이동하신 다음
개발 모드 -> 라이브 모드
"개인정보처리방침 URL"은 노션이나 블로그 게시글을 활용하여 링크를 달아주어도 무관하다!
"사용자 데이터 삭제" 부분은 당신 서비스에서 페이스북 사용자 데이터를 사용하는 건 좋은데, 사용자가 삭제를 원할 때는 당신 서버에서 모든 정보를 지울 수 있는 방법을 마련해 놓으라는 것이다. 데이터 삭제 콜백 URL과 데이터 삭제 안내 URL 중에 선택할 수 있다.
데이터 삭제 콜백은 다음 가이드를 참고하여, 실제 내 서버 DB에 저장된 사용자 정보를 삭제할 수 있는 URL을 만들어 추가해주면 된다. 데이터 삭제 안내는 콜백이 호출되지 않더라도, 어떻게 하면 삭제될 수 있는지 알려주는 안내 문구가 담겨있는 링크를 추가해주어야 한다.
https://darrengwon.tistory.com/360
https://www.privacypolicies.com/privacy-policy-generator/
https://nachwon.github.io/insta-facebook/