Аутентификация FeathersJS socketio jwt - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь добавить аутентификацию в мое приложение, используя feathersjs. У меня возникают проблемы с пониманием того, почему мой jwt токен не отправляется, хотя я получаю jwt с сервера.

Вот мой angular код:

import {CookieStorage} from 'cookie-storage';
import {JwtHelperService} from '@auth0/angular-jwt';
import feathers from '@feathersjs/feathers';
import socketio from '@feathersjs/socketio-client';
import auth from '@feathersjs/authentication-client';
import {tap} from 'rxjs/operators';
import * as io from 'socket.io-client';

const socket = io('http://localhost:3030');
const cookieStorage = new CookieStorage();
const client = feathers();

client.configure(socketio(socket));
client.configure(auth({ storage: cookieStorage }));

socket.emit('authenticate', userData, function(message, data) {
  console.log(message); // message will be null
  console.log(data); // data will be {"accessToken": "your token"}

  // You can now send authenticated messages to the server
});

Этот код работает, и я получаю jwt accessToken обратно в браузер, но часть cookieStorage не сохраняет cookie. Если я переключу socket.emit('authenticate') part со следующим кодом, это сработает:

client.authenticate(userData)

Но я хочу использовать socketio для аутентификации и сохранения jwt в файле cookie вместо использования следующего метода:

Как получить событие аутентификации socketio для установки jwt в cookie?

1 Ответ

0 голосов
/ 16 ноября 2018

client.authenticate(userData) будет использовать SocketIO для аутентификации (поскольку вы уже используете client.configure(socketio(socket));) и сохранить его в переданном вами хранилище (в вашем случае это cookieStorage).

...