如何使用 Nodejs 和 Flutter 保护 socket.io 的安全

问题描述 投票:0回答:2

我使用 Nodejs 和 Flutter 以及 socket.io 客户端开发了应用程序。我想在两个用户之间的通信过程中保护 Socket.io 的安全。有什么指导或建议吗?谢谢。

node.js flutter socket.io
2个回答
3
投票

在 Flutter 上,您可以为选项标头添加额外的标头。

'extraHeaders': {HttpHeaders.authorizationHeader: '$accessToken'}

import 'package:socket_io_client/socket_io_client.dart' as IO;

IO.Socket createSocket(String accessToken) {
  final url = 'https://$yourDomainHere';
  return IO.io(url,
    <String, dynamic>{
      'transports': ['websocket'],
      'rejectUnauthorized': false,
      'autoConnect': false,
      'extraHeaders': {HttpHeaders.authorizationHeader: '$accessToken'}
    });
}

0
投票

您可以使用 OptionBuilder() 方法 .setAuth() 或 .setAuthFn()

final socket = io.io( url.toString(), 
      OptionBuilder()
        .setTransports(['websocket']) 
        .disableAutoConnect()
        .setAuth({'authorization': "$token" }) // Use This
        .setAuthFn((callback){
           final String token = secureStorage.get('accessToken');
           callback({'authorization': '$token'})
        }) // Or This
        .build()
);
socket.connect();
© www.soinside.com 2019 - 2024. All rights reserved.