doumuyu0837 2015-05-05 13:46
浏览 54
已采纳

更改Laravel 4 Guard类的功能

I'm trying to write an SSO implementation and for that I need to override some methods such as Auth::check() which are implemented in the Guard class.

I don't understand, however, how to extend that class using service providers. I tried looking in the AuthServiceProvider but there is a whole lot of mumbo jumbo going on I don't understand.

  • 写回答

1条回答 默认 最新

  • duansao20000508 2015-05-05 14:10
    关注

    I figured it out! Fairly simple:

    <?php
    
    namespace Animekyun\Providers;
    
    use Animekyun\Auth\CustomGuard;
    use Illuminate\Auth\EloquentUserProvider;
    use Illuminate\Support\ServiceProvider;
    
    class SsoServiceProvider extends ServiceProvider
    {
    
        public function boot()
        {
            \Auth::extend('custom', function () {
                return new CustomGuard(
                    new EloquentUserProvider(
                        $this->app['hash'],
                        $this->app['config']['auth.model']),
                    $this->app['session.store']);
            });
        }
    
        public function register()
        {
        }
    }
    

    and the CustomGuard class:

    <?php
    namespace Animekyun\Auth;
    
    
    use Illuminate\Auth\Guard;
    
    class CustomGuard extends Guard
    {
        public function check() {
            // do some stuff
            return parent::check();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)