[英]php node.js redis session share Authentication
我只使用php和node.js,搜索后我发现了与用户身份验证的唯一方法
所以第一件事我改变了我的PHP会话保存浴到Redis
这是我的插入会话代码
会话名称( “用户ID”);
在session_start();
$ _SESSION [“ username”] =“ hello world”;
这是Redis的图像,它显示了会话
我只想对node.js上的会话进行身份验证,因此,如果用户在php中登录... node.js将数据发送给用户,否则拒绝用户...或通过node.js从mysql发送数据
所以在这里我建立node.js服务器
一切正常,我需要客户端上的套接字,然后将数据发送到服务器..
每次用户通过套接字发送值时,如果用户登录php(在redis中找到会话)将数据发送给用户,则我想对用户进行身份验证...发送u必须先登录
我的问题,如何通过node.js检查redis中的会话
您需要在redis数据库中查询会话信息,如下所示
//user.js
在Redis的AppSession哈希图中添加用户及其会话
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);
}
});
};
然后,您可以在代码中使用相同的方法来检查用户会话是否可用。 例如
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
}
});
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.