目前我有一個Laravel應用程序進行身份驗證。我想知道是否可以有另一個PHP應用程序(獨立於框架)使用相同的用戶表進行身份驗證。我不想再次使用Laravel,因爲這將是一個過度工程。「普通」php應用程序可以使用laravel用戶表進行身份驗證嗎?
我主要關心的是密碼的哈希如何在Laravel中完成。我可以配置普通的PHP應用程序以相同的方式散列密碼嗎?如果是這樣,我該怎麼做?
目前我有一個Laravel應用程序進行身份驗證。我想知道是否可以有另一個PHP應用程序(獨立於框架)使用相同的用戶表進行身份驗證。我不想再次使用Laravel,因爲這將是一個過度工程。「普通」php應用程序可以使用laravel用戶表進行身份驗證嗎?
我主要關心的是密碼的哈希如何在Laravel中完成。我可以配置普通的PHP應用程序以相同的方式散列密碼嗎?如果是這樣,我該怎麼做?
Laravel使用password_hash()
創建密碼散列(見make()
方法源代碼):
password_hash('somePassword555', PASSWORD_BCRYPT);
而且password_verify()
檢查密碼哈希(見check()
方法源代碼):
password_verify('somePassword555', $hashedPasswordFromDB);
謝謝!只測試了一些已經存儲的密碼的這些功能,他們工作! –
這是你想看看 供應商/ 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);
}
謝謝!這會有很大的幫助!正在尋找這些完全錯誤的地方 –
潛入Laravel源的功能,找到密碼散列如何。 –
如果你應該有你的純PHP代碼請求重定向到您的身份驗證端點Laravel內部,然後讓Laravel做身份驗證,並返回一個響應初始PHP代碼,然後繼續,因爲它應該成功驗證之後或引發錯誤回客戶端如果不成功。 – victor
@victor我沒有想過這個!聽起來像它可能工作.. –