2017-02-18 10 views
2

こんにちは皆、私はNode.jsをバックエンドで実行している角度アプリを実装しています。私は角度JSでセッションを設定しています。 io私のノードのjsサーバーで、また、私はnode.jsサーバーからアプリケーションをルーティングしています。認証されていないユーザーがページにアクセスするのを制限したいのですが、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サーバーでセッション値を取得したいですか否か。

答えて

1

セッションを使用する代わりに、私はクッキーを使用しました。角度のjsコントローラコードでクッキーを設定し、次にノードjsサーバーでクッキーを取得するためにcookie-parserを使用しました。ここ はちょうど他の誰か コントローラコード

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')); 
}); 
助けるために私のコードです