"plain" php 应用程序可以使用 laravel 用户 table 进行身份验证吗?

Can a "plain" php application use a laravel user table for authentication?

目前我有一个 Laravel 带有身份验证的应用程序。我想知道我是否可以拥有另一个使用相同用户 table 进行身份验证的 PHP 应用程序(独立于框架)。我不想再次使用 Laravel,因为它会过度工程化。

我主要关心的是如何在 Laravel 中完成密码散列。我可以将普通的 PHP 应用程序配置为以相同的方式散列密码吗?如果可以,我该怎么做?

Laravel使用password_hash() to create a password hash (see the make()方法源代码):

password_hash('somePassword555', PASSWORD_BCRYPT);

password_verify() to check password hash (see the check()方法源码):

password_verify('somePassword555', $hashedPasswordFromDB);

这是您要签出的文件 vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php

这些是他们正在使用的功能,password_hash();password_verify();

function make($value, array $options = [])
    {
        $cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds;
    $hash = password_hash($value, PASSWORD_BCRYPT, ['cost' => $cost]);

    if ($hash === false) {
        throw new RuntimeException('Bcrypt hashing not supported.');
    }

    return $hash;
}

function check($value, $hashedValue, array $options = [])
{
    if (strlen($hashedValue) === 0) {
        return false;
    }

    return password_verify($value, $hashedValue);
}