4

Android 4.0 アプリが、認証に mongoose-auth を使用して Node.Js Express サーバーから Cookie を受け入れられるようにしようとしています。ログイン API に投稿すると、set-cookie ヘッダーが Poster を使用して送信されていることがわかりますが、保存されているとは思いません。jquery cookie プラグインを使用してみましたが、読み取ろうとすると null が返されます。しかし、API でリクエストを調べると、セッション データにアクセスできます。phonegapを使用してAndroidにCookieを保存する方法のサンプルコードはありますか?また、Cookieがアプリに保存されているかどうかを確認しますか?

以下は私のエンドポイントです。別のエンドポイントからデータをセッションできます。

app.post('/api/login', function(request, response){
User.authenticate(request.body.email, request.body.password, function(err, userdoc)     {
    if (userdoc){
        //console.log(request.session);

        request.session.test = "hope this works";
        User.findOne({email : request.body['email']}, ['name'], function (err, user){
            if(!err){
                console.log("name %s", user);
                request.session.user = user;
                response.json({success:true});
            } else{
                console.log(err);
            }

        });
    }
    else {
        response.json({success:false});
    }
});
});

しかし、jquery プラグインを使用して Cookie を読み取ろうとすると、null が返されます。

alert($.cookie('connect.sid'));

どんな援助でも大歓迎です。

4

2 に答える 2

4

document.cookienullである理由は、リモート ドメイン名が含まれているためだと思いますが、PhoneGap/Cordova アプリの JavaScript はfile:///android_asset/www/にあります。

あなたの ajax リクエストは、クロスドメイン リクエストと見なされます。

これはデフォルトの Cookie の動作です。

おそらく、XHR オブジェクトと応答のヘッダーを介して ajax 要求から Cookie にアクセスするか、PhoneGap/Cordova JavaScript で読み取ることができるページ本体に Cookie をレンダリングするプロキシ ページをサーバーに書き込むことができます。

こちらもチェック

于 2012-07-09T12:02:17.093 に答える
3

サーバーサイド Cookie (セキュリティ トークンなど) には HttpOnly フラグがあります。このフラグが設定された Cookie は、セキュリティ上の理由から JavaScript (document.cookie) からアクセスできません。

于 2013-09-08T08:47:27.673 に答える