トークン認証を使用して、Feathers データベース アダプターによってエクスポートされたサービスを保護する必要があります。これを REST に対して次のように行いました。
var authenticate = jwt({
secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
audience: process.env.AUTH0_CLIENT_ID
});
認証されていないクライアントが REST サービスにアクセスできないようにするために、次のことを行います。
app.use('/api', authenticate);
Websocket へのアクセスもロックダウンする必要があります。いくつかの例を見つけました。以下は、理論的には socket.io の認証を有効にする必要があります。
app.configure(feathers.socketio(function(io) {
io.on('connection', socketioJwt.authorize({
secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
audience: process.env.AUTH0_CLIENT_ID,
timeout: 5000 // 5 seconds to send the authentication message
})).on('authenticated', function(socket) {
// console.log('token: ' + socket.decoded_token.name);
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
}));
しかし、これは起こっていません。クライアントの socket.io リクエストにはトークンがありませんが、サーバーは問題なくそれらを処理します。
どこから探し始めますか?