2013-06-29 22 views
6

私たちはWebアプリケーション(暗号化がRで実行されるshiny-server)を実行しており、認証レイヤーを追加したいと考えています。 Rでこれを行うためのものを作るのではなく、流星を使って認証トークンとそのすべてを作成することを考えました。 これは私がそれをやって考えていた方法です。authトークン、ローカルストレージ、流星

  • ユーザーは次のようになり、データベースのエントリを作成し、流星と流星を使用してログイン:
 
    { "createdAt" : 1372521823708, 
     "_id" : "HSdbPBuYy5wW6FBPL", 
     "services" : { "password" : { "srp" : { "identity" : "vKpxEzXboBaQsWYyJ", 
      "salt" : "KRt5HrziG6RDnWN8o", 
      "verifier" : "8d4b6a5edd21ce710bd08c6affb6fec29a664fbf1f42823d5cb8cbd272cb9b2b3d5faa681948bc955353890f645b940ecdcc9376e88bc3dae77042d14901b5d22abd00d37a2022c32d925bbf839f65e4eb3a006354b918d5c8eadd2216cc2dbe0ce12e0ad90a383636a1327a91db72cf96cd4e672f68544eaea9591f6ed102e1" } }, 
     "resume" : { "loginTokens" : [ 
      { "token" : "t9Dxkp4ANsYKuAQav", 
       "when" : 1372521823708 } ] } }, 
     "emails" : [ 
     { "address" : "[email protected]", 
      "verified" : false } ] } 
  • ユーザーであります"古いアプリケーション"にリダイレクトされます。ここでは、 (?我々は同じ外側を向いたホストとポートを使用している場合、正しい流星と同じローカルストレージでなければなりません)、ローカルストレージをチェックして、この情報を見つける:
 
    Meteor.loginToken: t9Dxkp4ANsYKuAQav 
    Meteor.userId: HSdbPBuYy5wW6FBPL 
  • ローカルストレージデータがあります「他のアプリケーション」によって調査され、ローカル記憶域情報がデータベース内のものと一致するかどうかを確認するために、meteor dbに対する単純なデータベース照会を行います。多分有効期限の何らかの種類をチェックしてください。これが一致すると、アプリケーションはレンダリングし、そうでない場合はレンダリングしません。

これはかなり安全な方法ですか?アプリケーション間でローカルストレージを共有することはできますか?

+2

ます:http://en.wikipedia。 org/wiki/HTTP_cookie#Domain_and_Path。 –

+0

これは、Meteorとブラウザの拡張機能を使って作業するときに私がこれに近づいたところです。 –

+0

この質問に関連する可能性がありますshinyStoreからShinyのローカルストレージを(オプションで暗号化して)使用できるパッケージです:https://github.com/trestletech/shinyStore –

答えて

0

もちろん、WebSocketがTLS上で動作していることを確認する必要があります。 LocalStorageは単純なSame-origin Policyを使用しています。そう、はい、それは動作します。 LocalStorageはクッキーと同じくらい安全ですので大丈夫です。

TLDR:

はいはい合理的なアプローチのように思えるが、あなたは自分のCookieにドメインとパスの制限に注意する必要があります