wuifdesign / multiauth
v0.3.5
2016-01-02 23:04 UTC
Requires
- php: >=5.4.0
- illuminate/support: 5.*
README
Laravel: 5.0, 5.1
此包扩展了默认的 Auth 库,允许使用不同数据库表甚至不同数据库中的账户登录。例如,如果您想将后端和前端用户保存到不同的表中以保持它们分离。
与默认的 Laravel 5 AuthController 和 PasswordController 兼容!
安装
最简单的方法是运行以下命令
composer require wuifdesign/laravel-multiauth
否则,您可以将包包含在您的 composer.json
文件中,
"require": {
"wuifdesign/laravel-multiauth": "0.3.*"
}
并通过 composer 更新或安装
composer update
现在您需要打开您的 app/config/app.php
并添加
'providers' => [
...
WuifDesign\MultiAuth\ServiceProvider::class
]
配置也很简单,使用具有默认值的 app/config/auth.php
return array(
'driver' => 'eloquent',
'model' => 'User',
'table' => 'users',
'password' => array(
'email' => 'emails.password',
'table' => 'password_reminders',
'expire' => 60,
),
);
并将前三个选项(驱动程序、模型、表)替换为以下内容
return array(
'default' => 'user',
'multi' => array(
'admin' => array(
'driver' => 'eloquent',
'model' => Admins::class,
),
'user' => array(
'driver' => 'eloquent',
'model' => Users::class,
'password' => [
'email' => 'users.emails.password',
]
)
),
'password' => array(
'email' => 'emails.password',
'table' => 'password_reminders',
'expire' => 60,
),
);
使用方法
所有操作都是通过路由完成的。只需在路由数组中添加一个键 "auth",其值为您在 app/config/auth.php
中使用的键。
Route::get('/', array(
'uses' => function () {
return 'Hello World';
},
'middleware' => [ 'auth' ],
'auth' => 'admin',
));
现在,如果您调用 Auth::check() 或其他任何函数,它将使用配置中设置的 "admin" 键的驱动程序和模型。
如果您未在路由中添加 "auth",则将使用在 app/config/auth.php
中定义的 "default" 类型。
如果您想在不同的路由中使用不同的认证方式时检查特定的认证,可以使用 Auth::type($auth_key)
获取所需的认证管理器。
Auth::type('admin')->check();
要获取路由当前使用的认证键或默认值(如果您未在路由中使用),请使用。
Auth::currentType();
如果您想以不同的用户登录,只需使用 Auth::impersonate($id, $auth_key = null, $remember = false)
。如果您不指定 auth_key,则将使用通过路由设置的键或默认键。
Auth::impersonate(3, 'admin');