【问题标题】:Eloquent - combining User::where with Hash::checkEloquent - 结合 User::where 和 Hash::check
【发布时间】:2018-01-20 14:23:22
【问题描述】:

我正在使用 Lumen/Laravel Eloquent。

我有表 userstoken 表示用 Hash::make( $fullToken)。

现在我想将用户从服务器发送到服务器的完整令牌值与保存到数据库中的哈希值进行比较。

我不能这样做:

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

因为每个散列值都有 salt 部分,我需要使用 Eloquent 的 Hash::check('plain-text', $hashedValue) 函数。

如何将此 check() 方法与 User::where() 结合使用?

我想要一种独特的方式来将该完整令牌转换为哈希值,并通过该哈希值从数据库中选择令牌列。

【问题讨论】:

    标签: laravel eloquent lumen


    【解决方案1】:

    为什么不Hash

    Hash::make 每次调用都会返回不同的输出,但您需要一个确定性函数。 Hash::make 不是像 md5 这样的简单确定性函数,它在每个给定输入处返回恒定输出。因此,当您按照您描述的方式使用 Hash 外观时,您无法查询哈希。

    如果您需要通过数据库查询哈希值,请尝试使用类似md5 函数而不是Hash::make

    要存储的一些变体

    • md5($userSentToken)
    • md5($userSentToken . $salt)
    • md5(md5($userSentToken))

    【讨论】:

      猜你喜欢
      • 2014-08-31
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 1970-01-01
      • 2020-09-05
      相关资源
      最近更新 更多