2017-12-23 10 views
1

トークンを使用してアプリケーションで認証を実装しています。与えられたトークンとハッシュ化されたソルトトークンのデータベース内での効率的な比較

トークンを生成するとき、実際のトークンはクッキーに格納するためにクライアントに送信され、ハッシュトークンはハッシュ中に使用されたsaltとともにデータベースに保存されます。

ユーザーを認証するには、指定したトークンとデータベースに保存されているトークンを比較する必要があります。これは、saltがすべてのトークンで一意であるためです。繰り返しに

、私はのような何かを行う必要があるだろう:それはすべての呼び出しで発生する必要があるため

for saved_token in all_saved_tokens: 
    hashed_token = hash_token_with_salt(actual_hash_from_client, saved_token.salt) 
    if hashed_token == saved_token.hashed_token: 
     return saved_token.user 

を、それがめちゃくちゃ非効率です。

は、そこで質問です:私は何とかそれがより効率的に、私は、トークンに関する情報を格納する方法

を与えて行うことができますか?

私はもちろん、ユーザーのユーザー名をクッキーに保存し、パスワードとともにコールに渡すことで、データベース内の検索範囲を絞り込むことができますが、理想的にはトークンを使用することをお勧めします物事をきれいに整えてください。

答えて

0

あなたが反復

+0

を必要としないように、ハッシュ化されたトークンのインデックスをDBと追加してハッシュされたトークンを保存していない理由を私はあまりにも、私ではないだろう、何とかそのインデックスを取得する必要がありますでしょうか? –

関連する問題