/** * Get the social provider. * * @param string $driver * * @return \Laravel\Socialite\One\AbstractProvider|\Laravel\Socialite\Two\AbstractProvider */ private function getSocialProvider($driver) { if (!SocialAuthenticator::isSupported($driver)) { static::pageNotFound(); } return Socialite::driver($driver); }
/** * Config the laravel auth package (override). */ private function configLaravelAuthPackage() { /** @var \Illuminate\Contracts\Config\Repository $config */ $config = $this->config(); $config->set('laravel-auth', Arr::except($config->get('arcanesoft.auth'), ['route', 'hasher'])); if (SocialAuthenticator::isEnabled()) { $this->app->register(\Laravel\Socialite\SocialiteServiceProvider::class); } }
/** * Add credentials columns. * * @param \Illuminate\Database\Schema\Blueprint $table */ private function addCredentialsColumns(Blueprint $table) { // Basic columns $table->string('email')->unique(); if (SocialAuthenticator::isEnabled()) { $table->string('password')->nullable(); // Social network columns $table->string('social_provider')->nullable(); $table->string('social_provider_id')->unique()->nullable(); } else { $table->string('password'); } }
/** * Define the public routes for the application. * * @param \Illuminate\Contracts\Routing\Registrar $router */ private function mapPublicRoutes(Router $router) { $configs = $this->config()->get('arcanesoft.auth.authentication'); $attributes = Arr::get($configs, 'routes.global', ['prefix' => 'auth', 'as' => 'auth::', 'namespace' => 'Arcanesoft\\Auth\\Http\\Controllers\\Front']); $router->group($attributes, function (Router $router) { Routes\Front\AuthenticationRoutes::register($router); Routes\Front\RegisterRoutes::register($router); Routes\Front\PasswordResetRoutes::register($router); if (UserImpersonator::isEnabled()) { Routes\Front\ImpersonateRoutes::register($router); } if (SocialAuthenticator::isEnabled()) { Routes\Front\SocialiteRoutes::register($router); } }); $router->group(array_merge($attributes, ['prefix' => 'api', 'as' => $attributes['as'] . 'api.']), function (Router $router) { Routes\Front\ApiRoutes::register($router); }); }
/** * Create a new Eloquent model instance. * * @param array $attributes */ public function __construct(array $attributes = []) { $this->setTable(config('laravel-auth.users.table', 'users')); if (SocialAuthenticator::isEnabled()) { $this->hidden = array_merge($this->hidden, ['social_provider_id']); $this->fillable = array_merge($this->fillable, ['social_provider', 'social_provider_id']); } parent::__construct($attributes); }