0

我用加密的密码创建了一个用户。(bcrypt(密码))

在休息 api 我得到 md5(password) [from app] 如何验证两个密码?

\Hash::check($request->password, $user->password)

不工作

4

2 回答 2

1

在 Laravel 中没有直接比较实际密码的方法。Laravel 从不将您的密码存储为纯文本,而是哈希版本 + salt,因此您可以使用以下方法检查密码的纯版本与哈希存储版本Hash::check

// original password
$password = 'my-password';

// hashed password
$hashed_password = bcrypt($password);
// something like: "$2y$10$XFs6ocWUaiiB99QvLwTuhOuABIq71D13LmpFdeISh7RsC.SsAthHG";

散列版本是存储的版本。

如果要检查密码是否验证:

use Illuminate\Support\Facades\Hash;

// ...

$passed = Hash::check($password , $hashed_password); // true
于 2019-05-15T13:37:32.467 回答
1

您无法比较通过不同方式加密的密码。您需要普通密码。我想您正在尝试为您平台中的用户进行无缝访问,以避免用户进行两次登录(在您的系统和 api 提供程序系统中)我是否正确?

在这种情况下,您可能需要以其他方式思考来处理它。

于 2019-05-15T13:38:07.750 回答