대머리개발자

애플 oauth 본문

개발이야기/개념

애플 oauth

대머리개발자 2024. 7. 18. 13:11
728x90

 

oauth의 개념은 정말 심플하다.

인증을 대신 해준다는 것이다. SSO의 개념이쥬. 작년에 휘갈긴 내용이 있네.

https://hcnmy.tistory.com/25

 

What the OAuth2.0

생각의 흐름대로 주저리 주저리!! 수 많은 블로그에서 저마다의 이해를 바탕으로 저마다의 생각이...온전하지 못한 나를 흔들고 있다. 여긴 오데?? 나는 누구?? 무엇을 하고 있지??...아아어어...

hcnmy.tistory.com

 

뭐 암튼..

 

네이버, 카카오, 구글, 애플, 페이스북, .. 대형 서비스 업체들에 "이미 가입된 내 정보"를 통해서 인증을 위임하고 전달받은 토큰을 우리내 시스템에 녹여서 서비스하면 된다.

 

근데 보통 전달받은 토큰을 그저 사용하기 보다는 내부 토큰을 다시 만들어서 사용한다.

 

Why -> 토큰을 입맛에 맞게 사용하기 위함이겠쥬

 

뭐 암튼 3개의 구현체를 구현했는데;;

 

애플이 짜장면을 먹게 해서..아오

늘 혼자 튄다.

 

1. "보통"은 client-secret를 미리 정의된 값으로 설정을 해서 사용한다.

그러나 애플은 몇 가지 속성을 가지고 그때그때 JWT를 만들어서 client-secret을 self로 만들어야 한다.

 

아래와 같이 이유 없는 실패 응답을 받다 보니 삽질의 구렁텅이에서 빠져나오질 못했다.

대부분 JWT의 문제일것이다.  다른 부분에서의 원인은 나름 친절한 부연 설명이 들어온다.

 

나의 경우는  "kid, alg" 값을 body 부분에 바인딩을 했다.  head에 해야 하는데

 

 

2. "보통"은 리턴URI는 http://localhost 를 허용해 준다.

그러나 해당 URI는 허용하지 않기 때문에 로컬 테스트가 녹록하지 않다. 일단  https://localhost.com/a/test 대충 적용하고 주소줄에서 코드값만 복사해서 테스트를 진행한다.

 

 

별도 툴(포스트맨, ..)을 이용해서 코드와 JWT를 넣어준다. 짜장면 곱빼기!! 

 

3. "보통"은 사용자 정보를 얻기 위한 EndPoint가 있다.

야는 없다 ㅋㅋ 토큰을 줄때 id_token을 같이 주는데 그놈을 디코딩하면 된다.

근데 관련 정보를 단 한번 준다고 한다(결론은 쓸모가 없다.)

 

&scope=name email&response_mode=form_post 포함해서 프로세스 진행했는데도 값이 오지 않는다면.. 이미...사요나라

하악하악

 

 

애플은 그냥 인증에 대한 위임만 하잡!!  회원 가입 폼을 별도로 만들어야지 ㅠ

 

그래서 난 윈도우에.. 안드로이드를 쓴다.ㅋ

728x90