1

这是我在 passport.socketIO 之前初始化护照的代码。有时,passportSocketIo 会抛出一个错误,指出 Passport 未初始化。无论如何我可以在 app.use 上使用 async await 来确保在套接字尝试使用护照之前先初始化护照?

app.use(passport.initialize())
app.use(passport.session())

var io = socketIO(server)
io.use(passportSocketIo.authorize({
  cookieParser: cookieParser,       
  key:          'connect.sid',       
  secret:       'secret',    
  store:        sessionStore,        
  success:      onAuthorizeSuccess,  
  fail:         onAuthorizeFail,     
}));

function onAuthorizeSuccess(data, accept){
  accept(null, true);
}

function onAuthorizeFail(data, message, error, accept){
  if (error)
    throw new Error(message);
  accept(null, false);
}

这是它创建的错误:

/Users/user/reactProjects/app/server.js:90
[0]     throw new Error(message);
[0]     ^
[0] 
[0] Error: Passport was not initialized
[0]     at Object.onAuthorizeFail [as fail]
4

0 回答 0