2017-05-18 6 views
0

エクスプレスでサーバー側のクッキーを読み取る方法は?私のクライアント側I'amは、ユーザーのクッキーでトークンを保存するには

this.socket.on('server:authentication', function(tokenObject){ 
    if(tokenObject){ 
    sessionStorage.setItem("token", tokenObject); 
    this.setState({ submitted: true}); 
    } 
}.bind(this)); 

は、それから私は、サーバー側でそのトークンを読みたいが、私はやるとき:

app.use(cookieParser()); 

app.use(function(req, res, next){ 
    const { token } = req.cookies; 
    console.log(token); 
... 
}); 

私はコンソール上で "undefined"を得る。試してみると同じことconsole.log(req.cookies.token)。それをどうすれば実現できますか?

+0

あなたはHTTPリクエストに必要なクッキーを取り付けますか? 'req.cookies'を呼び出すと、そのリクエストに添付されているクッキーをチェックしています。クッキーがクライアント側で設定されているだけであっても、自動的にHTTPリクエストに添付されているわけではありません。 –

+0

いいえ私は私がtoughtクッキーを添付していないよそれは自動的に作られた。クライアント側からクッキーを送信させるにはどうすればよいですか? – Mit

+0

リクエストを行うために使用しているものによって異なりますが、 'withCredentials'をtrueに設定する必要があるかもしれないと思います。たとえば、[jQueryでこれを行う方法はこちら](http://stackoverflow.com/questions/10230341/http-cookies-and-ajax-requests-over-https/10249123) –

答えて

1

クライアント側のコードにCookieを設定する必要があります。現在、別の獣であるsessionStorageに設定されています。

this.socket.on('server:authentication', function(tokenObject){ 
    if(tokenObject){ 
     document.cookie = 'token=' + tokenObject; 
     sessionStorage.setItem("token", tokenObject); 
     this.setState({ submitted: true}); 
    } 
}.bind(this)); 

How to set cookie and get cookie with JavaScript

関連する問題