FeathersJS socketio jwt身份验证

时间:2018-11-15 18:35:01

标签: cookies socket.io jwt feathersjs

我正在尝试使用curl_multi_init()向我的应用添加身份验证。即使我从服务器接收到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部分未保存cookie。如果我使用以下代码切换cookieStorage部分,则可以正常工作:

socket.emit('authenticate')

但是,我想使用client.authenticate(userData) 进行身份验证并将socketio保存在cookie中,而不是使用以下方法:

如何获取jwt身份验证事件以在Cookie中设置socketio

1 个答案:

答案 0 :(得分:1)

client.authenticate(userData) 使用SocketIO进行身份验证(因为您已经在使用client.configure(socketio(socket));)并将其存储在您通过的存储中(即cookieStorage情况)。