app / Models / User.php
namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { protected $connection='conn'; protected $table='users-custom'; protected $fillable = [ 'login', 'passwd' ]; protected $hidden = [ 'passwd', ]; public function getAuthPassword(){
}
create application /Auth/CustomUserProvider.php
namespace App\Auth; use Illuminate\Support\Str; use Illuminate\Contracts\Auth\Authenticatable as UserContract; use Illuminate\Contracts\Auth\UserProvider; class CustomUserProvider implements UserProvider { protected $hasher; protected $model; public function __construct($model) { $this->model = $model; } 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) {
in config / auth.php
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users_office', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'users_office' => [ 'driver' => 'customUser', 'model' => App\Models\User::class, ],
in \ vendor \ laravel \ framework \ src \ Illuminate \ AuthCreatesUserProviders.php
public function createUserProvider($provider) { $config = $this->app['config']['auth.providers.'.$provider]; if (isset($this->customProviderCreators[$config['driver']])) { return call_user_func( $this->customProviderCreators[$config['driver']], $this->app, $config ); } switch ($config['driver']) { case 'database': return $this->createDatabaseProvider($config); case 'eloquent': return $this->createEloquentProvider($config); case 'customUser': return $this->createCustomUserProvider($config); default: throw new InvalidArgumentException("Authentication user provider [{$config['driver']}] is not defined."); } } protected function createCustomUserProvider($config){ return new \App\Auth\CustomUserProvider($config['model']); }
add App \ Providers \ CustomUserAuthProvider.php
namespace App\Providers; use Auth; use App\Models\User; use App\Auth\CustomUserProvider; use Illuminate\Support\ServiceProvider; class CustomUserAuthProvider extends ServiceProvider { public function boot() { Auth::extend('customUser', function($app) {