在laravel中如何验证密码

时间:2019-05-15 13:28:26

标签: php laravel encryption laravel-5.4

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

在REST API中,我正在从应用程序中获取md5(密码) 如何同时验证密码?

Qui ordonne, dispose, met en ordre. Hello World!

不工作

2 个答案:

答案 0 :(得分:1)

在Laravel中没有直接方法可以比较实际密码。 Laravel永远不会将密码存储为纯文本,而是存储为散列版本+盐,因此您可以使用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

答案 1 :(得分:1)

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

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