1

パスポートのローカル戦略を使用してユーザーを認証し、connect-mongoを sessionstore モジュールとして使用してパスポート/エクスプレス セッションmongodbに保存し、 passport.socketioを統合 し、使用してユーザーを承認しました。

  io.use(passportSocketIo.authorize({
  cookieParser: cookieParser,             
  secret:       'sessionSecret',    
  store:        sessionStore,        
  success:      onAuthorizeSuccess,  
  fail:         onAuthorizeFail,     
  }));

onAuthorizeSuccess関数から、パスポートからのログに記録されたdata.userをコンソールしました。これで、サーバー上のデータにアクセスできます。しかし、クライアント側のパスポートユーザーであるreq.userにアクセスするにはどうすればよいですか。

data.userreq.userと同じ結果を返します

 function onAuthorizeSuccess (data,accept){
      console.log("data from socket: "+data.user);
      console.log('successful connection to socket.io');
}

私のクライアント側のコード

$(document).ready(function () {
    var socket = io.connect("http://localhost:3000/chat");
    socket.on('connect', function () {

    //how to access passport user here 

       console.log("connection establised");
    });
});

私のサーバー側コード

module.exports = function (io) {
    var chat = io.of("/chat").on("connection", function () {
        console.log("connection established on the server");
    });
};
4

0 に答える 0