我只使用 php 和 node.js,在搜索之后我发现只有用户身份验证的方法
所以首先我将我的 php session save bath 更改为 redis
这是我插入 session 的代码
session_name("userID");
session_start();
$_SESSION["username"] = "hello world";
这是redis的图像,它显示了 session
我只想在 node.js 上验证 session ,所以如果用户登录 php ... node.js 向用户发送数据,否则拒绝用户...或者通过 node.js 从 mysql 发送数据
所以我在这里构建 node.js 服务器
一切都很好,我需要客户端上的套接字,我将数据发送到服务器..
每次用户通过套接字发送值时,如果用户登录 php(在 redis 中找到的 session ),我想对用户进行身份验证,将数据发送给其他用户...发送你必须先登录
关于如何通过 node.js 检查 redis 中的 session 的问题
最佳答案
您需要查询您的 redis 数据库以获取 session 信息,如下所示
//user.js
在redis的appsession hash map中添加用户和它的session
exports.addUserSession = function (redisClient,userId,sessionId,callback){
redisClient.hset('appsession',sessionId,userId,function(err,response){
callback(err,response);
});
};
exports.validateUserSession = function (redisClient,userId,sessionId,callback){
redisClient.hget('appsession',sessionId,function(err,response){
if(response==userId)
{
callback(err,true);
}
else
{
callback(err,false);
}
});
};
然后您可以在代码中使用相同的方法来检查用户 session 是否可用。例如
var session = require(./user.js );
socket.on("selector", function( data) {
sessionID = data.handshake.session;
USERNAME = socket.username;
session.validateUserSession(redisClient,USERNAME,sessionID,function(err,response){
// Do other processing if session is valiated
}
});
希望对您有所帮助。
关于javascript - php node.js redis session 共享身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33298211/