【发布时间】:2018-04-21 13:01:15
【问题描述】:
我正在使用 laravel 广播构建我的套接字应用程序。我制作了我的服务器脚本,然后像在这个脚本中一样添加了 https:(代码可能包含错误,因为它是从内存中写入的)
var fs = require('fs');
var https = require('https');
var express = require('express');
var app = express();
var options = {
key: fs.readFileSync('./file.pem'),
cert: fs.readFileSync('./file.crt')
};
var serverPort = 3000;
var server = https.createServer(options, app);
var io = require('socket.io')(server);
require('socketio-auth')(io, {
authenticate: authenticate,
postAuthenticate: postAuthenticate,
disconnect: disconnect,
timeout: 1000
});
之后,我添加了 socketio-auth 并将其修改为仅用于用户名和密码身份验证。
function authenticate(socket, data, callback) {
if (data.username != "username") {
return callback(new Error("User not found"));
}
return callback(null, user.password == "password");
}
}
我的问题是关于我通过套接字发送的凭据。
import VueSocketio from 'vue-socket.io';
Vue.use(VueSocketio, socketio('https://socketserver.com:1923', {secure: true}));
var vm = new Vue({
sockets:{
connect: function(){
console.log('socket connected')
this.$socket.emit('authentication', {username : "username", password: "password"});
},
},
})
我实际上将 Vue 与 vue-socketio 一起使用,但它可以处理连接以及正确获取/发送信息。
我遇到的问题是,当我在谷歌浏览器中进行控制台时,我得到纯文本套接字发出身份验证信息,例如 (请求有效负载:{身份验证:{用户名:“用户名”,密码:“密码”}})。
当我使用 ssl 时这是正常的吗?我的代码有问题吗? 或者我需要自己加密然后解密这些信息?
我认为我通过 HTTPS 发送的所有内容都是加密的。
寻找你的重播。谢谢!
【问题讨论】:
标签: php node.js sockets authentication encryption