sailsjs
및 passport
으로 소켓을 통한 인증을 얻으려고합니다.소켓을 통한 인증 방법
소켓 연결에 세션이 없으며 sailsjs가 요청 개체를 조롱하여 Passport 미들웨어 설정이없는 것으로 보이는 것입니다. 이로 인해 노드 012는 req
객체에 logIn
이라는 메서드가 없다는 오류가 발생합니다.
그래서 여기에 @xdissent에서 제공하는 코드 스 니펫을 따르려고했습니다 : Sails.js + Passport.js authentication through websockets 실제로 오류를 던지지 않고 로그인 할 수 있습니다. 아니면 ..? 뭔가가 인 것으로 밝혀졌습니다. 그러나 나는 무엇을 모릅니다. 왜냐하면 다른 소켓 요청을 통해 req.user
을 가져 오면 빈 객체가 반환되기 때문입니다.
나는 또한 redis에서 봤다. 이것은 밖으로 나왔다 :
redis 127.0.0.1:6379> keys *
1) "waterline:broadcasting:_sequences:id"
2) "sess:aDJI0YHzh17E3AMjtKsZSijs"
redis 127.0.0.1:6379> get "sess:aDJI0YHzh17E3AMjtKsZSijs"
"{\"cookie\":{\"httpOnly\":true,\"path\":\"/\"}}"
redis 127.0.0.1:6379>
그래서 거기에 사용자가 저장됩니다.
짧은 이야기로, 어떻게 여권과 sailsjs가 소켓을 뛰어 넘게 할 수 있습니까?
업데이트 : 일반적으로 세션, 소켓 및 쿠키에 대한 정보가 필요합니다. 따라서 세션에서 물건을 설정하고 브라우저를 새로 고치면 여전히 거기에 있기를 바랍니다. 소켓 연결과 동일한 페이지에서 xhr 호출을하면 동일한 세션이되어서는 안됩니까?
합니다. – gorelative
+1 이미 문제의 해결책을 찾았습니까? – HaNdTriX
https://github.com/jfromaniello/passport.socketio를 시도해 보셨습니까 –