2017-12-16 3 views
-1

내 질문에 간단합니다. socket.io nodejs 앱과 laravel 세션 정보를 안전하게 공유하려면 어떻게해야합니까? 나는 여러 가지 방법을 시도해 봤지만 그 중 아무 것도 효과가 없으므로 전문가가 해결하기를 바라고 있습니다. JWT 토큰을 사용하고 싶지 않다는 것을 이미 알고 있습니다. 그래서 나는 그저 세션 쿠키 데이터 자체를 남기는 것으로 생각합니다. socket.io를 쿠키로 인증하는 방법을 알아낼 수 없으므로 도움이 필요합니다. 나는 redis를 사용하여 세션을 저장하고 laravel과 함께 기본 인증 시스템을 사용하고 있습니다.Laravel 공유 세션 Socket.io Nodejs

세션을 파싱하는 데 유용한이 라이브러리를 사용해 보았습니다. 하지만 내 socket.io 서버로 인증하지 않습니다. https://www.npmjs.com/package/node-laravel-session

누구든지이 문제를 해결하는 방법을 알고 있다면 큰 도움이 될 것입니다.

답변

0

나는 socket.io의 인증 문제에 문제가 있다고 생각합니다. 응용 프로그램에서 응용 프로그램으로 쉽게 세션을 공유 할 수 없다는 것이 그 이유입니다.

  1. 때 사용자를 인증 :이 데이터가 클라이언트의 브라우저 (쿠키)와 서버 (세션) 사이에 처리 때문에 Laravel와 Socket.io를 연결하려는 경우, 먼저 같은 흐름의 일종을해야 socket.io에 대한 쿠키를 (호스트가 다른 경우)으로 설정하려면 웹 사이트에서.
  2. 백그라운드에서 세션 데이터 트로프 데이터베이스 (memcached, redis 등)와 쿠키를 공유해야합니다. 아시다시피 laravel 세션 param이 데이터베이스를 사용하도록 설정하면 파일을 사용하는 대신 laravel이 자동으로 세션 데이터를 DB에 저장하기 시작하므로 데이터베이스에서 세션 매개 변수를 쉽게 읽을 수 있습니다.

난 당신이 잘못에 의해 노드 laravel 세션를 사용하여 생각 나는 getSessionFromFile을 다른 서버에 Node.js를 응용 프로그램이 있고 당신이 사용하는 경우, 그것은 작동하지 않습니다 의미한다. 그것을 올바르게 사용하고 있는지 확인하십시오. 이런 과정을 만드는 것은 쉬운 프로세스이지만, 프로젝트 간 세션이있을 때 보안 문제가 대부분입니다.