2

ログに記録されたユーザー セッションを保存するために、express.js cookie-sessionを使用しています。新しいユーザーにサインインするたびに、現在のセッションに userId を配置し、この userId を DB で作成した user._id に割り当てます。

req.session.userId = user._id;

最終的に、新しいユーザーがログイン フォームを送信すると、ユーザー データを含む get リクエストが /user restful サービスに送信され、そのデータ (識別子) が DB に保存されていない場合、新しいユーザーが DB に登録されます。そして、彼のために新しいセッション Cookie が作成されます。

req.session.userId = user._id;
res.status(200).send({'userId': user._id});

上記の機能を chrome、firefox、IE11 でテストしました。chrome/firefox を使用している場合、ログイン後の応答コードは 200 で、送信されたユーザーは UI によって挨拶されます。ただし、IE11 を使用する場合、最初に送信されたユーザーは UI によって挨拶されますが、別のユーザーが送信されたときは挨拶されません。どうやら IE11 は、dev でフラグをオンにしない限り、最初にログインしたセッション Cookie (応答コード 304) をキャッシュします。コンソールですがalways refresh from server、これはブラウザのデフォルトのオプションではありません。

4

0 に答える 0