2017-09-14 11 views
0

jwtセッションとangularjsで動作するように私のtwitterにサインインするには、twitterのユーザー名と表示名でjwtを作成し、cookieとして渡してローカルストレージに保存しました。ユーザーがjwtをクッキーに保存してローカルストレージに渡すのは悪いセキュリティですか?

ログインし、クッキーを保存:

app.get('/login/twitter', passport.authenticate('twitter')); 
    app.get('/login/twitter/callback', function(req, res) { 
     passport.authenticate('twitter' , {session: false} , function(err, user, info) { 
      if(err) { 
       console.log(err); 
      } 
      var token; 
      token = user.generateTwitterJwt(); 
      // res.status(200); 
      // res.json({ 
      // "token" : token 
      // }); 
      res.cookie('jwt' , token); 
      res.render('login.jade'); 
     })(req, res); 
    }); 

保存ローカルストレージにクッキーを削除します。ここではいくつかの関連するコードですこれを行うに任意の欠点があるかどう

$scope.twitterTest = function() { 
    var jwtCookie = $cookies.get('jwt'); 
    authenticationService.saveToken(jwtCookie).error(function() { 
     if(err) { 
      console.log(err); 
     } 
    }).then(function() { 
     $cookies.remove('jwt'); 
     var url = '/profile'; 
     $window.location.href = url; 
    }); 
} 

私は思ったんだけど。セキュリティ上の問題はありますか? jwtとangularjsをlocalstorageプロセスに保存しようとしているのは、ローカルログインを設定する方法なのでです。

+0

トークンをローカルストレージに直接保存しないのはなぜですか? –

+0

@RaphaelMüllner投稿リクエストがブロックされているため、Twitterのコールバックページからjwtを取得する必要があることがわかりませんでした。 –

+0

私はAngularJSについてはわかりませんが、あなたのテクニックには大きなセキュリティがあるとは思わない影響。トークンをローカルストレージに保存する前に、トークンをセッション内で「バッファリング」することは私には気にしません。 –

答えて

0

localStorageの代わりにbrowser sessionStorageを使用できます。これは、ブラウザセッションの終了時に削除されるため、SessionStorageはより安全です。また、クッキーの代わりに直接sessionStorageに保存すると、この場合クッキーは必要ありません。

関連する問題