如何在包中扩展Auth?

时间:2013-08-14 22:11:39

标签: php authentication laravel package laravel-4

如何扩展Auth以使用我自己的包认证系统?

我替换了auth驱动程序并注册了我的ServiceProvider,但是我必须将其放在register()方法中?

以下代码不起作用:

Auth::extend('example', function($app) {
    $provider =  new Vendor\Package\PackageUserProvider;
    return new \Illuminate\Auth\Guard($provider, $app['session']);
});

1 个答案:

答案 0 :(得分:1)

我认为你必须这样做:

\Auth::extend('example', function()
    {
        return new Guard(
            new ExampleUserProvider(
                new BcryptHasher,
                \Config::get('auth.model')
            ),
            \App::make('session')
        );
    });

这将创造一个新的后卫。第一个参数是UserProvider的实例,应该实现UserProviderInterface。第二个参数是guard应该存储经过身份验证的用户信息 - 在这种情况下是在IoC中创建的会话对象。