2017-02-18 1 views
0

방금 ​​Google AppEngine 인증에서 OAuth로 이동 한 웹 사이트가 있습니다. 내 아이폰에 로그인 처음으로 나는 내 웹 사이트에 바로 가기를 저장했던 때문에 UIWebViews의에서 OAuth를 내가이 우연히 (20)iOS 앱의 Google OAuth가 홈 화면에 저장되었습니다.

https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html

4 월 중단된다는 소식을있어 내 iOS 홈 화면. 이 문제를 어떻게 해결할 수 있습니까? 로그인 버튼을 OAuth 인증 흐름을위한 새 창을 연 다음 인증이 완료되면 새 창을 닫을 수 있다고 가정합니다. 하지만 그 사용자가 홈 화면에 저장 한 응용 프로그램에 대한 일종의 kludgy, 그리고 사용자가 UIWebView 여부 (그래서 내가 새 창을 열 것인지 여부를 결정할 수 있습니다) 신뢰할 수없는 가능성이 높습니다 여부를 감지 Google에서 사용하는 검색 결과와 일치 시키려고합니다.

누구든지이 사용자 경험을 허용하는 방법에 대한 경험이나 지침이 있습니까?

답변

0

Google 및 Apple에서 시행하는 제한으로 인해이 문제를 쉽고 간단하게 해결할 수 없습니다. Google은 '샌드 박스'브라우저에서 OAuth 서비스를 사용하도록 허용하지 않습니다. 그리고 아이폰의 '샌드 박스'브라우저는 샌드 박스가없는 브라우저와 어떤 데이터 (예 : 쿠키 또는 localStorage)도 공유하지 않습니다. 따라서 OAuth 교환을 완료하기 위해 새 창을 열면 교환 완료를 알리고 사용자 ID를 '샌드 박스'브라우저 세션으로 다시 전송할 방법이 없습니다.

이 문제를 해결할 수있는 유일한 해결책은 Roku 등록 프로세스와 비슷합니다. 사용자가 현재 로그인 한 브라우저에서 일회성 코드를 생성 한 다음 그 일회성 코드를 '샌드 박스'브라우저. 필자는 2 분 동안 유효했던 6 자리 코드를 사용하기로 선택했으며 동일한 사람이 코드를 생성하고 소비하도록하기 위해 몇 가지 추가 로직을 추가했습니다.

이 방법은 작동하지만 사용자 경험은 표준 OAuth 플로우만큼 좋지 않습니다. 그리고 Google에서 샌드 박스 처리 된 브라우저에서 OAuth를 제한하는 이유를 이해합니다. 그러나 홈 스크린에 저장 한 PWA를 사용하려면 사용자가 추가 농구를 통해 사용자에게 강제로 점진적 웹 앱을 방해합니다.

관련 문제