“普通”php应用程序可以使用laravel用户表进行身份验证吗?

时间:2017-07-14 17:20:35

标签: php laravel authentication hash laravel-5.3

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

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

2 个答案:

答案 0 :(得分:2)

Laravel使用password_hash()创建密码哈希(请参阅make()方法源代码):

password_hash('somePassword555', PASSWORD_BCRYPT);

password_verify()检查密码哈希(请参阅check()方法源代码):

password_verify('somePassword555', $hashedPasswordFromDB);

答案 1 :(得分:1)

这是您要查看的文件 供应商/ laravel /框架/ SRC /照亮/散列/ 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);
}