본문 바로가기
웹개발

[node.js] Socket.IO에 Passport 적용하는 방법

by JaeminRyu 2023. 12. 11.
728x90

passport의 설정과 관련된건 전부다 이미 되어있다고 가정하여 관련된 코드는 모두 생략하고 socket.io에 적용하는 방법만 서술함

 

const express = require('express');
const session = require('express-session');
const passport = require('passport');
const io = require('socket.io')(server);	//server도 설정되어 있는대로 하면된다.

//io의 미들웨어 사용

io.engine.use(session({
    //설정은 알아서
    }
}));

io.engine.use(passport.initialize())
io.engine.use(passport.session())

이렇게 설정해주면 끝이다.

 

사용할 때는

socket.on('test',(data)=>{
   console.log(socket.request.user) //req.user 유저 식별자
   console.log(socket.request.isAuthenticated()) // req.isAuthenticated() 로그인 되어있는지 확인

})

이렇게 원래 express에서 app.get("test",(req,res) =>{}) 하고 사용했을때와 동일하게 사용하면 된다.

대신 req.~~가 socket.request.~~로 바뀌었다고 생각하면된다.