11

ここで私が本当に理解できないことがあります:

セッションを初期化して、サーバー側で高速実行しています。

app.use(express.session({
    secret: 'mySecret'
    })
}));

Confusion over session IDs using Connectの投稿で述べたように、すべてのリクエストに connect.sid Cookie を送信します。

クライアント側では、この Cookie の内容を読みたいのですが、それは不可能だと感じています:

angular.module('myApp.controllers', ['ngCookies','myApp.services'])
.controller('homeCtrl', function($scope, $cookies) {
    $cookies['test']='myValue';
    console.log($cookies);
});

これを実行すると、ログに次のオブジェクトが表示されます :Object {test: "myValue"}が、Chrome デバッガーの [リソース] タブに移動すると、両方の Cookie が表示されます:

Chrome デバッガーの [リソース] タブのスクリーンショット

私は何を間違っていますか?

angular からサーバー作成の Cookie にアクセスすることは不可能ですか?

ありがとう

4

2 に答える 2

15

デフォルトでは、接続セッションは httpOnly Cookie を使用します (こちらを参照)。

httpOnly フラグが設定されている場合、Cookie の読み取りは常に禁止されます。

httpOnly フラグを無効にしてみてください。

app.use(express.session({
    secret: 'mySecret',
    cookie: { httpOnly: false }
}));
于 2013-03-08T18:54:58.807 に答える