【发布时间】:2018-05-20 02:02:45
【问题描述】:
我在 CRM 中创建了帐户并在其中创建了哈希密码。
$account->password = bcrypt($password);
然后在我的网站上我创建了一些守卫和提供者:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'business' => [
'driver' => 'session',
'provider' => 'business'
]
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\Eloquent\Account::class,
],
'business' => [
'driver' => 'eloquent',
'model' => App\Models\Eloquent\BusinessAccounts::class
]
],
然后尝试用门卫业务登录账号:
public function login(BusinessLoginRequest $request)
{
$orgNumber = $request->input('orgNumber');
$password = $request->input('password');
if(Auth::guard('business')->attempt(['orgNumber' => $orgNumber, 'password' => $password ])) {
var_dump(\auth('business')->user());
}
}
我的模型看起来像:
class BusinessAccounts extends Model implements Authenticatable
{
use \Illuminate\Auth\Authenticatable;
protected $table = 'business_accounts';
protected $fillable =
[
'orgNumber', 'password'
];
public $timestamps = false;
}
但是当我尝试使用未散列的密码登录和 var_dump 用户时,我有空白屏幕,当我尝试从我的数据库中输入散列密码时,我可以看到商业帐户模型。 我的代码有什么问题? 我怎么能理解 Auth::atempt 只是用 db-password 检查登录密码的值,当然,不一样。 我已经阅读了许多指南和文章,但找不到错误, 我知道这很简单,但我不明白。
【问题讨论】: