12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
-
- namespace Illuminate\Auth;
-
- use Illuminate\Auth\Access\Gate;
- use Illuminate\Support\ServiceProvider;
- use Illuminate\Contracts\Auth\Access\Gate as GateContract;
- use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
-
- class AuthServiceProvider extends ServiceProvider
- {
- /**
- * Register the service provider.
- *
- * @return void
- */
- public function register()
- {
- $this->registerAuthenticator();
-
- $this->registerUserResolver();
-
- $this->registerAccessGate();
-
- $this->registerRequestRebindHandler();
- }
-
- /**
- * Register the authenticator services.
- *
- * @return void
- */
- protected function registerAuthenticator()
- {
- $this->app->singleton('auth', function ($app) {
- // Once the authentication service has actually been requested by the developer
- // we will set a variable in the application indicating such. This helps us
- // know that we need to set any queued cookies in the after event later.
- $app['auth.loaded'] = true;
-
- return new AuthManager($app);
- });
-
- $this->app->singleton('auth.driver', function ($app) {
- return $app['auth']->guard();
- });
- }
-
- /**
- * Register a resolver for the authenticated user.
- *
- * @return void
- */
- protected function registerUserResolver()
- {
- $this->app->bind(
- AuthenticatableContract::class, function ($app) {
- return call_user_func($app['auth']->userResolver());
- }
- );
- }
-
- /**
- * Register the access gate service.
- *
- * @return void
- */
- protected function registerAccessGate()
- {
- $this->app->singleton(GateContract::class, function ($app) {
- return new Gate($app, function () use ($app) {
- return call_user_func($app['auth']->userResolver());
- });
- });
- }
-
- /**
- * Register a resolver for the authenticated user.
- *
- * @return void
- */
- protected function registerRequestRebindHandler()
- {
- $this->app->rebinding('request', function ($app, $request) {
- $request->setUserResolver(function ($guard = null) use ($app) {
- return call_user_func($app['auth']->userResolver(), $guard);
- });
- });
- }
- }
|