2015-05-05 3 views
0

Я пытаюсь написать реализацию SSO, и для этого мне нужно переопределить некоторые методы, такие как Auth::check(), которые реализованы в классе Guard.Изменить функциональность Laravel 4 Класс защиты

Я не понимаю, однако, как расширить этот класс, используя поставщиков услуг. Я попробовал посмотреть в AuthServiceProvider, но есть много мумбо-jumbo, идущих, я не понимаю.

ответ

0

Я понял! Довольно просто:

<?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() 
    { 
    } 
} 

и CustomGuard класс:

<?php 
namespace Animekyun\Auth; 


use Illuminate\Auth\Guard; 

class CustomGuard extends Guard 
{ 
    public function check() { 
     // do some stuff 
     return parent::check(); 
    } 
} 
Смежные вопросы