feathers-authentication version 1 app.authenticate 不适用于套接字

feathers-authentication version 1 app.authenticate not working with sockets

我已经设置了带有 ldap 身份验证的 feathersjs,这需要 feathers-authentication version 1。它在休息时使用 app.authenticate 工作正常,但在使用套接字时失败。启用调试后,我确认服务器获取凭据并成功生成令牌。但是,客户端无法获得响应。服务器正在发出 'authentication created',客户端仅在使用 socket.on('authentication created') 时才获取,而不是在使用 app.authenticate() 时获取。我知道我可以使用普通套接字并完成工作,但文档建议使用 app.authenticate 然后使用 app.service('someService').

以下代码片段适用于 rest,但不适用于 socket。

app.authenticate({
  type: 'local',
  endpoint: '/authentication',
  strategy: 'ldap',
  'username': 'user',
  'password': 'password'
}).then(function(result){
  console.log('Authenticated!', app.get('token'));
}).catch(function(error){
  console.error('Error authenticating!', error);
});

这是我设置套接字的方式:

var socket = io(apiDomain, {
  transport: ['websockets']
});

// Set up Feathers client side
var app = feathers()
.configure(feathers.socketio(socket))
.configure(feathers.hooks())
.configure(feathers.authentication({ storage: window.localStorage }));

feathers-authentication 版本 1.x 仅适用于使用模块加载器的 feathers-client v2.0.0-pre.1 or later. This is currently still a prerelease and has to be installed accordingly (npm install feathers-client@pre --save) or by loading the individual module feathers-authentication-client