1 개요[ | ]
- 라라벨 EloquentUserProvider
- 라라벨 UserProvider 인터페이스 상속
PHP
Copy
<?php
namespace Illuminate\Auth;
use Illuminate\Support\Str;
use Illuminate\Contracts\Auth\UserProvider;
use Illuminate\Contracts\Hashing\Hasher as HasherContract;
use Illuminate\Contracts\Auth\Authenticatable as UserContract;
class EloquentUserProvider implements UserProvider
{
protected $hasher;
protected $model;
public function __construct(HasherContract $hasher, $model)
{
$this->model = $model;
$this->hasher = $hasher;
}
public function retrieveById($identifier)
{
return $this->createModel()->newQuery()->find($identifier);
}
public function retrieveByToken($identifier, $token)
{
$model = $this->createModel();
return $model->newQuery()
->where($model->getAuthIdentifierName(), $identifier)
->where($model->getRememberTokenName(), $token)
->first();
}
public function updateRememberToken(UserContract $user, $token)
{
$user->setRememberToken($token);
$user->save();
}
public function retrieveByCredentials(array $credentials)
{
$query = $this->createModel()->newQuery();
foreach ($credentials as $key => $value) {
if (! Str::contains($key, 'password')) {
$query->where($key, $value);
}
}
return $query->first();
}
public function validateCredentials(UserContract $user, array $credentials)
{
$plain = $credentials['password'];
return $this->hasher->check($plain, $user->getAuthPassword());
}
public function createModel()
{
$class = '\\'.ltrim($this->model, '\\');
return new $class;
}
public function getHasher()
{
return $this->hasher;
}
public function setHasher(HasherContract $hasher)
{
$this->hasher = $hasher;
return $this;
}
public function getModel()
{
return $this->model;
}
public function setModel($model)
{
$this->model = $model;
return $this;
}
}
2 같이 보기[ | ]
- 라라벨 UserProvider
- 라라벨 CreatesUserProviders
- 라라벨 Authenticatable
- 라라벨 Hasher
- 라라벨 커스텀 User Provider 추가
- 라라벨 로그인 과정
3 참고[ | ]
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.