"머큐어, 심포니, Vue 사이에 호환성 문제가 있습니다"
<p>vue와 Symfony를 사용하여 Mercure를 구성하는 데 문제가 있습니다. 저는 Symfony cli에 연결된 머큐어 허브를 사용하고 있습니다. .env 파일에서 http를 사용하도록 Mercure의 URL을 변경했습니다. 이렇게 하면 인증서 오류(symfony에서 제공)가 발생할 수 있습니다. </p>
<p><strong>.env</strong></p>
<pre class="brush:php;toolbar:false;">MERCURE_URL=http://localhost:8000/.well-known/mercure
MERCURE_PUBLIC_URL=http://localhost:8000/.well-known/mercure
MERCURE_JWT_SECRET="!ChangeMe!"</pre>
<p>브라우저(예: http://localhost:8000)에서 심포니 애플리케이션을 열고 테스트를 위해 콘솔에 다음 스크립트를 추가하면: </p>
<pre class="brush:php;toolbar:false;">const eventSource = new EventSource('http://localhost:8000/.well-known/mercure?topic=' + encodeURIComponent('http:// example.com/books/1'));
eventSource.onmessage = 이벤트 =>
// 이 함수는 서버가 업데이트를 게시할 때마다 호출됩니다.
console.log(JSON.parse(event.data));
}</pre>
<p>작동하며 다른 탭에 일부 변경 사항을 게시할 수 있습니다.
그러나 http://localhost:8080에 있는 vue 애플리케이션에서 동일한 작업을 수행하면 콘솔에 다음 오류가 표시됩니다. </p>
<pre class="brush:php;toolbar:false;">'http://localhost:8000/.well-known/mercure?topic=http://example.com/books/1의 리소스에 액세스 ' 원본 'http://localhost:8080'이 CORS 정책에 의해 차단되었습니다. 요청한 리소스에 'Access-Control-Allow-Origin' 헤더가 없습니다.</pre>
<p>그리고 두 가지 질문이 더 있습니다:</p>
<올>
<li>jwt 토큰을 env에 붙여넣을 때 401 오류가 발생하지만 위의 jwt 토큰을 사용할 때는 발생하지 않는 이유는 무엇입니까? </li>
<li>https로 Symfony Serve를 사용할 수 없는 이유는 무엇입니까? "TransportException: fopen(): 인증서 CN을 찾을 수 없습니다." 오류가 발생했습니다. </li>