如何扩展Auth
以使用我自己的包认证系统?
我替换了auth驱动程序并注册了我的ServiceProvider
,但是我必须将其放在register()
方法中?
以下代码不起作用:
Auth::extend('example', function($app) {
$provider = new Vendor\Package\PackageUserProvider;
return new \Illuminate\Auth\Guard($provider, $app['session']);
});
答案 0 :(得分:1)
我认为你必须这样做:
\Auth::extend('example', function()
{
return new Guard(
new ExampleUserProvider(
new BcryptHasher,
\Config::get('auth.model')
),
\App::make('session')
);
});
这将创造一个新的后卫。第一个参数是UserProvider
的实例,应该实现UserProviderInterface
。第二个参数是guard应该存储经过身份验证的用户信息 - 在这种情况下是在IoC中创建的会话对象。