我在用戶表中有列 nik、密碼和 pin,我想使用 auth::attempt 和 2 個案例
- 如果列 pin 為空,則 auth::attempt 使用引數 nik 和密碼
Auth::attempt(['empnik' => $empnik, 'password' => "12345678"]); - 如果列 pin 不為空,則 auth::attempt 使用引數 nik 和 pin(注意:pin 像密碼一樣通過哈希加密)
Auth::attempt(['empnik' => $empnik, 'pin' => "123456"]);。
在第二種情況下,回傳失敗,因為即使我的 pin 是通過哈希加密的,也可能 pin 沒有使用散列(如密碼)檢查。那么如何使用哈希來Auth::Attempt驗證列pin呢?是否可以?
這是我的用戶模型
protected $fillable = [
'empnik','empname', 'email', 'password', 'pin'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'pin'
];
uj5u.com熱心網友回復:
您可以使用以下方法更改 User.php 模型上使用的密碼。
public function getAuthPassword()
{
if ($this->pin) {
return $this->pin;
}
return $this->password;
}
現在需要對其進行哈希處理,并且沒有最佳的簡單方法或正確的版本。
簡單的非最佳方法
檢查時只需將其散列即可。
if ($this->pin) {
return Hash::make($this->pin);
}
或者更新所有要散列的引腳,并在保存或更新它時使用散列函式。
$user->pin = Hash::make($request->pin);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/371275.html
標籤:拉拉维尔
上一篇:XamariniOS-為什么我不能在NSArray上按索引迭代或獲取?
下一篇:使用where子句進行雄辯計數
