12

基本的に私は a.example.com から www.example.com へのリダイレクトを行っており、www.example.com の Cookie を削除できると期待しています (Cookie は Cookie ドメインとして .example.com で作成されるため)。次のコードは機能しません。

この質問は重複した質問のように思えますが、同様の質問からすべてを試しましたが、うまくいきません。コードの後に​​私がすでに試したことを見てください。

Express 3.0.3 とノード 0.10.32 を使用します。

エクスプレス セッション ミドルウェア

...
var cookiedata = { 
    domain              : '.example.com',
    originalMaxAge      : null,
    httpOnly            : false
};

app.use(express.session({
        store  : ..., 
        secret : ..., 
        key    : 'express.sid', 
        cookie : cookiedata 
}));
...

ログアウト機能

function logout(req, res){
    ...

    req.session.destroy(function(){
        req.session = null;

        res.clearCookie('express.sid', { path: '/' });
        res.redirect('https://www.example.com');

    });
}

同様の質問からすでに試したこと

  1. https://github.com/strongloop/express/issues/691

だから私はpath : '/'次のようなエクスプレスセッションミドルウェアを入れました:

app.use(express.session({ ..., path : '/' });

失敗。

  1. https://groups.google.com/forum/#!topic/express-js/PmgGMNOzhgM
    代わりに res.clearCookie を使用しました: res.cookie('express.sid', '', {expires: new Date(1),道: '/' });

失敗。

4

3 に答える 3

11

Express.JSのresponse.clearCookieです(749行目のresponse.jsファイル)。

var opts = merge({ expires: new Date(1), path: '/' }, options);
return this.cookie(name, '', opts);

この行にブレークポイントを設定すると、有効期限が無効な日付で報告されることがわかります。したがって、response.clearCookie を使用する代わりに、このようにすぐに有効期限が切れるようにします。

response.cookie("express.sid", "", { expires: new Date() });
于 2015-12-08T08:18:03.907 に答える