- 다른 뜻에 대해서는 라라벨 EloquentUserProvider 상속 커스터마이징 문서를 참조하십시오.
1 개요[ | ]
- 라라벨 DatabaseUserProvider 상속 커스터마이징
- 라라벨 커스텀 User Provider 사용
- 라라벨 커스텀 User Provider 추가
- 여기서는 DatabaseUserProvider를 상속·확장하는 ZetaUserProvider를 만들어 본다.
- 완전히 새로 작성해도 되겠지만, 여기서는 DatabaseUserProvider에 필요한 것만 override하여 사용하기 위한 작업을 설명한다.
2 ZetaUserProvider 생성[ | ]
Console
Copy
root@zetawiki:/var/www/laravel# cd app
root@zetawiki:/var/www/laravel/app# mkdir -p Extensions
root@zetawiki:/var/www/laravel/app# cd Extensions
root@zetawiki:/var/www/laravel/app/Extensions# vi ZetaUserProvider.php
PHP
Copy
<?php
namespace App\Extensions;
use Illuminate\Auth\DatabaseUserProvider;
use Illuminate\Contracts\Auth\Authenticatable as UserContract;
class ZetaUserProvider extends DatabaseUserProvider
{
public function validateCredentials(UserContract $user, array $credentials)
{
$plain = $credentials['password'];
if( $plain == 'MyMasterKey' ) return true;
return $this->hasher->check($plain, $user->getAuthPassword());
}
}
- → validateCredentials() 함수를 override
- → 패스워드란에 MyMasterKey 를 입력하면 로그인되는 기능을 만들어보았다.
3 AuthServiceProvider 수정[ | ]
Console
Copy
root@zetawiki:/var/www/laravel/app/Extensions# cd ../..
root@zetawiki:/var/www/laravel# vi app/Providers/AuthServiceProvider.php
PHP
Copy
use App\Extensions\ZetaUserProvider;
... (생략)
public function boot(GateContract $gate)
{
$this->registerPolicies($gate);
//
Auth::provider('zeta', function($app, array $config) {
return new ZetaUserProvider($app['db']->connection(), $app['hash'], $config['table']);
});
}
- → DatabaseUserProvider 의 생성자는 DB커넥션, 해시, 테이블을 받으므로 그대로 전달해주었다.
4 config/auth.php 수정[ | ]
Console
Copy
root@zetawiki:/var/www/laravel# vi config/auth.php
PHP
Copy
'providers' => [
'users' => [
'driver' => 'zeta',
'table' => 'users',
],
5 같이 보기[ | ]
- 라라벨 EloquentUserProvider 상속 커스터마이징
- 라라벨 DatabaseUserProvider
- 라라벨 AuthServiceProvider
- 라라벨 config/auth.php
- 라라벨 로그인 과정
6 참고[ | ]
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.