0
解析CodeIgniter的會話數據提出,存儲以下陣列到會話一個簡單的登錄功能:從Redis的
$sessionData=[
'username'=>/*username of the loged in user*/,
'user_id'=>/*user id of the logedin user*/
];
而我想的授權用戶能夠能夠聊到下面的聊天頁面這被通過笨服務:
<?php
$this->load->helper('url');
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Messaging</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="<?=base_url('assets/css/bootstrap/bootstrap.min.css');?>" rel="stylesheet" >
<script src="<?=base_url('assets/js/jquery.min.js')?>"></script>
<script src="<?=base_url('assets/js/bootstrap.min.js')?>"></script>
<script src="<?=base_url('assets/js/socket.io.min.js')?>"></script>
<script>
$(function() {
var socket = io('http://localhost:3000');
$('form').submit(function(e){
e.preventDefault();
socket.emit('chat message', $('#m').val());
$('#m').val('');
});
socket.on('chat message', function(msg){
$('#messages').append($('<div class="col-xs-12">').text(msg));
});
});
</script>
</head>
<body>
<div id="messages" style="max-height:100%" class="container-fluid">
</div>
<div class="container-fluid">
<div class="col-xs-12">
<form action="" class="form-inline bg-success">
<div class="form-group">
<input id="m" type="text" class="form-control" autocomplete="off" />
</div>
<button class="btn btn-primary">Send</button>
</form>
</div>
</div>
</body>
正如你可以看到它使用了一個socker.io Node.js的服務器偵聽進港3000上,但我希望把一些認證到socket.io服務器爲了不能夠讓未經授權的用戶使用第三方應用程序。
正如我注意到,只要websocket使用相同的域codeigniter的cookie傳遞到node.js的socket.io。所以我認爲我需要一箇中間件才能從redis獲取coceigniters會話數據。
所以首先我想對得到的數據是如何存儲Redis的服務器上,所以我通過redis-cli --scan --pattern '*'
命令連接,我得到了以下結果一看:
ci_session:uipchhk7lfc5vmodndljquqsbs2ru02d
ci_session:gvmio1esujbscbh8847olbn4hkg5897n
ci_session:iejok3chmv025keh5g52lj3lps701umj
,但他們似乎不任何有用的形式。所以我想知道:
上面這些數據是什麼? 我將如何從node.js應用程序獲取我想要的會話信息?