wuifdesign / laravel-multiauth
此包已被弃用且不再维护。未建议替代包。
Laravel 多认证集成
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,
),
);
并将前三个选项(driver、model、table)替换为以下内容
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_key 或默认值(如果您在路由中没有设置它),请使用
Auth::currentType();
如果您想以不同的用户身份登录,只需使用 Auth::impersonate($id, $auth_key = null, $remember = false)
。如果您没有解析 auth_key,将使用通过路由设置的键,或默认键。
Auth::impersonate(3, 'admin');