본문 바로가기
WebRTC

Iframe 에서 getUserMedia 가져오기

by Playdev 2020. 10. 29.
728x90

Janus 미디어 서버를 활용하여 화상 솔루션을 만드는 중에 난관에 부딪혔다.

 

 

진행중인 페이지를 레이어팝업 형태로 하여, 보다 유저 친화적(?)인 UI 로 하려다보니

Cross Origin 정책으로 인하여 getUserMedia 를 불러올 수 없었다.

 

오랜 검색, 또 검색을 통해 삽질을 몇 번 하다가..

아래와 같은 해결책을 찾게 되어 기록으로 남기고자 한다.

 

* 해결법

<iframe src='http://localhost' allow='camera *;microphone *'></iframe>

위와 같이 iframe 에 allow 옵션을 주어 카메라와 오디오에 접근을 허용하면 언제 그랬냐는 듯 getUserMedia 를 사용할 수 있게 된다.

보안적인 측면에서 과연 이렇게 제공이 되는게 맞을까 싶지만서도...

서비스 제공할 때는 사전에 해당 내용을 잘 명시해야 될 듯 하다.

 

* 관련 설명

<iframe src="" allow="feature_name allow_list"></iframe>

 

allow_list 는 아래 중 하나의 값을 가질 수 있다고 한다.

  • *: 위에서 사용 된 기능은 최상위 브라우징 컨텍스트 및 중첩 컨텍스트 (iframe)에서 허용됩니다.
  • 'self':이 기능은 최상위 브라우징 컨텍스트 및 동일 출처 중첩 컨텍스트 에서 허용 됩니다 . 이 기능은 중첩 된 브라우징 컨텍스트에 대한 출처 간 문서에서 허용되지 않습니다.
  • 'none':이 기능은 최상위 및 중첩 된 브라우징 컨텍스트에서 전혀 허용되지 않습니다.
  • <origin(s)>:이 기능은 특정 출처에서 허용됩니다. 예 : https://mywebsite.com

 

728x90