Hello Everyone我正在实现一个角度应用程序,Node.js在后端运行。我在角度JS中设置会话,我已经建立了自己的工厂,我在我的节点js服务器中使用socket.io我从node.js服务器路由应用程序。我想限制未经身份验证的用户访问该页面,但我必须在我的node.js服务器中检索会话值,我无法这样做。我正在附上我的代码片段。
Server.js
var fs = require('fs');
var express = require('express');
var https = require('https');
var path = require('path');
var options = {
key: fs.readFileSync(path.join(__dirname, 'fake-keys/privkey.pem')),
cert: fs.readFileSync(path.join(__dirname, 'fake-keys/fullchain.pem')),
ca: fs.readFileSync(path.join(__dirname, 'fake-keys/chain.pem'))
};
var PORT = 9001;
var HOST = '192.168.1.2';
app = express();
app.use(express.static(__dirname));
server = https.createServer(options, app).listen(PORT, HOST);
console.log('HTTPS Server listening on %s:%s', HOST, PORT);
// routes
app.get('/', function(req, res) {
res.sendfile(path.join(__dirname,'/index.html'));
});
app.get('/Admin', function(req, res) {
res.sendfile(path.join(__dirname,'/view/Admin.html'));
});
app.get('/Guest', function(req, res) {
res.sendfile(path.join(__dirname,'/view/Guest.html'));
});
require('./Signaling-Server.js')(server, function(socket) {
try {
var params = socket.handshake.query;
if (!params.socketCustomEvent) {
params.socketCustomEvent = 'custom-message';
}
socket.on(params.socketCustomEvent, function(message) {
try {
socket.broadcast.emit(params.socketCustomEvent, message);
} catch (e) {}
});
} catch (e) {}
});
会话服务
var myApp = angular.module('SessionService', []);
myApp.factory('SessionService', ['$http', function ($http) {
return {
set: function (key, value) {
return sessionStorage.setItem(key, value);
},
get: function () {
return sessionStorage.getItem(key);
},
destroy: function () {
return sessionStorage.removeItem(key);
}
};
}])
我想在我的nodejs服务器中获取会话值,以便我可以跟踪经过身份验证的用户。
答案 0 :(得分:1)
我没有使用会话我使用cookies我在我的角度js控制器代码中设置了cookie,然后在节点js服务器中我使用cookie-parser来获取cookie! 这是我的代码只是为了帮助别人 控制器代码
var artistControllers=angular.module('artistControllers',['SessionService','ngCookies']);
artistControllers.controller('ListController',['$scope','$http','SessionService', '$cookies', '$cookieStore','$location',function($scope,$http,$cookies, $cookieStore,SessionService,$location)
{
$cookieStore.put('username', username);
}
}]);
服务器代码
app.get('/Admin', function(req, res) {
console.log("Cookies : ", req.cookies.username);
res.sendfile(path.join(__dirname,'/view/Admin.html'));
});