2017-08-12 5 views
0

私はLumen/Laravel Eloquentを使用しています。Eloquent - User:with Hash :: check

私はテーブルハッシュで作成したハッシュ化されたトークン値を表すトークンとユーザーを持っている::($ fullToken)します。

ここで、データベースに保存されたハッシュ値を使用して、ユーザーがサーバーに送信するトークンの完全な値を比較します。 (、$ HASHEDVALUE「プレーンテキスト」)

$hashedToken = Hash::make($userSentToken); 

各ハッシュされた値が部分を持っているので、私は雄弁のハッシュ::チェックを使用する必要があります。

私はこのこの方法を行うことができないのです関数。

このcheck()メソッドをUser :: where()と組み合わせるにはどうすればよいですか?

完全なトークンをハッシュ値に変換し、そのハッシュ値によってデータベースからトークン列を選択する独自の方法が必要です。

答えて

0

なぜHash

Hash::makeは異なる出力ごとにコールを返しますが、あなたは決定論的機能を必要としています。 Hash::makeは、任意の入力ごとに一定の出力を返すmd5のような単純な決定的な関数ではありません。したがって、説明したようにファサードHashを使用するとハッシュを照会することはできません。

データベースを介してハッシュ値を照会する必要がある場合は、Hash::makeの代わりにmd5関数のようなsmthを使用してみてください。

  • md5($userSentToken)
  • md5($userSentToken . $salt)
  • md5(md5($userSentToken))
を格納するための

いくつかの亜種