"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);
}
目前我有一个 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);
}