coolishbee / universal-sdk-unity

The Universal SDK for Unity provides a modern way of implementing Social Login APIs.
45 stars 11 forks source link

[안드로이드]애플 로그인을 진행시 마지막에서 진행이 인됩니다. #5

Closed HyunheeKo closed 1 year ago

HyunheeKo commented 1 year ago

Screenshot_20220921-003802_1Takes~2

로그인 완료후 이미지의 화면에서 더이상 진행되지 않습니다.

혹시 redirect 페이지에서 뭔가 해줘야 하나요?

What did you do?

Please describe what you did before you encounter the issue.

What did you expect?

Please describe what you did expect to happen.

What happened actually?

Please describe what happened actually.

Your environment?

Some information of the environment in which the issue happened. Universal SDK version, Unity version, Android version, iOS version, etc.

Screenshots or Log

It would be appreciated if you can provide a screenshot or log that i can infer the issue.

coolishbee commented 1 year ago

문서에서 Android Apple Login 5. section을 참고해주세요. 안드로이드에서 애플로그인을 사용하려면 애플서버로부터 수신하는 백엔드 서버가 필요합니다. redirect uri 설정시 애플서버에서 post 로 로그인정보를 request 하기 때문입니다. 이때 반드시 서버내에서 redirect 를 해줘야 합니다. 그래야 SDK 단에서 redirect 된 정보를 받아서 성공이든 실패 처리를 할 수 있기 때문입니다.

참고로 redirect 시 애플서버측에서 보내준 body 는 쿼리스트링으로 실으시면 됩니다.

HyunheeKo commented 1 year ago

빠른 답변 너무 감사합니다. 제가 이쪽 부분에 대해서 잘 몰라서 추가 질문을 드리겠습니다.

[launcherTeamplet] resValue "string", "redirect_url", "https://xxxx.com:4430/apple_login_callback"

애플 서버에도 "https://xxxx.com:4430/apple_login_callback" 이런식으로 해서 해당 페이지가 호출되는것 까진 확인하였습니다. [예시] { "access_token": "adg61...67Or9", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "rca7...lABoQ", "id_token": "eyJra...96sZg" } 이런형태의 데이터도 받았구요...

여기서 "이때 반드시 서버내에서 redirect 를 해줘야 합니다." 라고 하셨는데... 어디로 무엇을 redirect 를 해야 되나요?

이쪽으로 많이 부족합니다. 잘 부탁드립니다. ^^;

coolishbee commented 1 year ago

받으신 body 데이터를 json으로 풀지마시고 string 그대로 콜백url 뒤에 쿼리스트링으로 붙혀서 redirect 해주시면 되세요

[ex]
string QueryString = reqBody.FromBody;
Response.Redirect($"https://xxxx.com:4430/apple_login_callback?{queryString}");

지금 생각해보니 가이드가 부족했네요. 좋은 피드백 감사합니다! 웹뷰로 애플로그인을 하는거라서 oauth 방식이라고 이해하시면 되세요!^^ redirect 를 하는 이유는 클라이언트가 웹뷰내에서 백엔드가 받은 데이터를 별도의 통신없이 받기 위함이에요

그리고 토큰2차검증은 현재 지원하지 않고 있고 추후 업데이트예정에 있습니다.

HyunheeKo commented 1 year ago

답변 대단히 고맙습니다. 결론 부터 말씀드리면 해결하였습니다.

혹시 가이드를 수정하실 계획이 있으시다면 애플 인증 내부원리에 대해 조금 설명해주시면 좋을것 같아요~ 애플 로그인 화면에서 마지막에 애플 서버쪽에 뭔가 더해야 하는줄로 알고 그쪽을 보게되었는데...

서버에서 Post로 받고 redirect url에 쿼리스트링을 url에 붙여서 리다이렉트 시켜주면 웹뷰에서 Url 파싱을 통해 완료여부를 파악한다라는 내용이 포함되어 있으면 좋을것 같습니다.

빠른 답변과 좋은 프로젝트 만들어주셔서 다시한번 감사드립니다.

coolishbee commented 1 year ago

맞습니다!^^ 현재 새로운 버전의 프로젝트를 준비중이기도 해서 가이드도 동시에 업데이트가 될 예정입니다.

그리고 아직 확정적이진 않지만 많은 분들이 UnityIAP 와 호환되게 해달라는 요청이 많았어서 결제모듈을 제외하게 될 것 같아요 추후 결제API 를 마이그레이션 하게 되더라도 양해부탁드립니다^^;