현재 내가 만들고있는 Flutter 앱에서 사용자 지정 (Google/Facebook/Twitter/기타 사용자가 아닌) 인증 서버에 대해 사용자를 인증해야합니다.Oauth2가 플러터 앱에 있음
이렇게하려면 사용자가 웹 페이지에서 자격 증명을 입력해야합니다. 이를 위해 WebView-plugin을 사용할 수 있습니다. 그러나 사용자가 인증 된 후 페이지가 리디렉션되면 WebView가 닫히고 코드가 WebView를 처음 호출 한 (Flutter) 함수에 전달됩니다.
이미 몇 가지 조사를 수행하는 데, 나는 다음과 같은 옵션 건너 온 :
- This blog post가 수동으로 내 의견으로는 (진정한 해결책이 아니다 창을 닫으려면 사용자가 필요로하는 로컬 서버를 사용).
- This issue은 모든 OAuth 제공자와의 통합을 표시하지만 브라우저 내부의 사용자 인증에 대한 세부 정보는 제공하지 않습니다.
- This issue은 정확히 설명하는 것처럼 보이지만 하단에는 WebView 플러그인이 WebView를 닫는 방법을 제공한다는 내용이 나와 있습니다. 실제로는 close() -function 인 반면 리디렉션 URI에서이를 트리거하고 인증 코드를 반환하는 방법을 찾을 수 없습니다.
리디렉션 URI가 열리면 브라우저를 자동으로 닫고 (또한 인증 코드를 반환하는) 솔루션이 있습니까?
미리 감사드립니다.
이것은 결국 우리가 한 일이지만 보안상의 이유로 WebView 대신 기본 브라우저에서 URL 시작 프로그램을 사용했습니다. 예를 들어 AndroidManifest.xml은 URI 데이터를 방금 확인한 활동에 URL을 연결하고 채널을 사용하여 전송 한 다음 자체를 닫습니다. 감사! –
@RickdeVries 어떤 보안상의 이유로? AFAIK 외부 브라우저는 "비공식적 인"클라이언트 (예 : 인증 및 클라이언트/앱이 동일한 엔티티에서 소유 (코드 검토)되지 않음)의 모범 사례입니다. – straya