2017-06-01 4 views
1

私は、Serverとの通信にhttpsプロトコルを使用するAngular Jsアプリケーションを持っています。私は、ログインしたユーザーの名前とjwtトークンを保存するためにCookieを使用します。以下は、私がクッキーを設定するために使用するコードです。HttpsプロトコルのangularJsアプリケーション用のHttpOnlyフラグ付きCookie

$cookies.putObject('token', token, { 
     expires: exp, 
     secure: true 
     }); 

セキュリティチームから私のアプリケーションのクリアランスを取得するには、CookieのHttpOnlyフラグを設定する必要があります。これが作成されるかわからない - 私は私のウェブサイトのクッキーを開くと

は、私は2つの項目

  1. connect.sidを参照してください。私は このクッキーを作成するために明示的に何もしていません。
  2. トークン - これはユーザーと彼のjwtトークンを格納するために作成したクッキーです。

私は検索し、これらのクッキーにHttpOnlyフラグを設定するために必要な変更を行いました。そしてそれはうまくいった、私は両方のクッキーにHttpOnlyフラグがチェックされているのを見ることができた。しかし、この変更後、認証が機能しなくなりました(つまり、Cookie内のjwtにアクセスできません)。言い換えれば、バックエンドとの私のコミュニケーションが壊れています。私は以下の文を使ってクッキーを読んでいます。

$cookies.getObject('token') 

以前の状態に戻すためにいくつかの変更を元に戻す必要がありました。現在、connect.sidのCookieはHttpOnlyフラグで設定されており、トークンCookieは設定されていません。私はここで何が問題になっているのだろうと思っています。 Angular Jsの新機能で、かつてはCookie管理に携わったことがありません。どんな助けでも大歓迎です。

答えて

3

HttpOnlyクッキーとは、JavaScriptなどのスクリプト言語からアクセスできないことを意味します。したがって、JavaScriptでは、CookieのHttpOnly属性を取得または設定するためのAPIはまったく使用できません。そうしないと、HttpOnlyの意味が無効になります。

「トークン」クッキーをサーバーから設定するだけです。

+0

サーバーから自分のトークンCookieのHttpOnlyフラグを設定しました。しかしその後、私のangualrJsコードはコンテンツにアクセスすることができません。もしこれが期待されているのですか?または私は正しい方法でクッキーを読んでいない可能性があります –

+1

はい、これは予想される動作です。 HttpOnly Cookiesは、javascriptによって読み込まれないようになっています。 – Himanshu

+0

ありがとう@Himanshu。それは役立ちます –

関連する問題