Comment puis-je transmettre le jeton de connexion personnalisée à la connexion io? Donc, fondamentalement, après avoir authentifié un utilisateur, et l'utilisateur aura le jeton, mais comment puis-je passer ce jeton à la connexion socket.io et probablement l'utiliser.comment passer le jeton de connexion de l'utilisateur à socket.io?
est ici le code - c'est api.js
function ensureAuthenticated(req, res, next) {
// I skip alot of codes for clarity
var token = req.body.token || req.query.token || req.headers['x-access-token'];
if (token) {
req.user = user;
return next();
}
}
//Login
router.post('/login', function(req, res) {
// I skip the mongoose part for clarity
var token = createToken(user);
res.json({
success: true,
message: "Successfully login",
token: token
});
});
alors que c'est server.js
io.on('connection', function(socket) {
socket.broadcast.emit('user joined', {
username: socket.username,
numUsers: numUsers
});
socket.on('typing', function() {
socket.broadcast.emit('typing', {
username: socket.username
});
});
socket.on('online', function() {
socket.emit('online');
});
socket.on('chat', function(msg) {
console.log("message: " + msg);
io.emit('chat', msg);
});
});
Comme vous pouvez le voir si je dois définir l'objet nom d'utilisateur i ai faire username: socket.username
, pour utiliser l'objet nom d'utilisateur.
Si je fais le nom d'utilisateur: req.user, il retournera l'erreur. Dois-je configurer la fonction ensureAuthenticated
dans le io.on('connection')
pour pouvoir l'utiliser?