【问题标题】:Why Laravel Auth::check always return false?为什么 Laravel Auth::check 总是返回 false?
【发布时间】:2013-08-21 00:55:14
【问题描述】:

我正在为现有数据库制作 API。当我看到 Auth::attempt 总是返回 false 时,我首先注意到了这个问题。由于我已经实现了自己的 SHA1 哈希提供程序,我认为这可能是问题所在。

但我尝试了 Hash::make('test'),它给了我 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'。然后我尝试了 Hash::make($client->pwd) 它给了我相同的哈希值。到目前为止正确。最后我做到了

if (Hash::check('test', $cli->pwd))
{
    [...]
}

它返回错误。从外观上看,问题不是我的哈希提供者,我想这也是 Auth::attempt 失败的原因。谁能告诉我为什么?

【问题讨论】:

  • Auth::attempt() 将对密码本身进行哈希处理,因此它可能会重新哈希您的“哈希”密码
  • 您是否将自定义哈希提供程序集成到 Auth 中?因为该哈希看起来不像 BCrypt 哈希。
  • 糟糕,我的错误。我将其更改为 if (Hash::check('test', $cli->pwd))。仍然返回错误。是的,我认为我的集成是正确的,它是 SHA1,因为我的数据库密码不是 bcrypt 哈希。

标签: php laravel laravel-4


【解决方案1】:

问题出在我这边。我误解了 Eloquent 的概念。我必须更改我的 UserInterface 类,我的用户模型映射到的一个 getAuthIdentifier() 以返回“id”,它是我的表的 PrimaryKey。我虽然 getAuthIdentifier() 是表的“用户名”。

【讨论】:

    猜你喜欢
    • 2014-10-01
    • 1970-01-01
    • 2020-02-14
    • 2018-01-07
    • 2014-02-25
    • 2018-01-19
    • 2019-06-28
    • 2017-03-25
    • 2015-03-03
    相关资源
    最近更新 更多