沙罗卡加拉 / laravelmultiauth
原生的Laravel多认证(订阅者、管理员、超级管理员)。
This package is auto-updated.
Last update: 2024-09-17 23:38:24 UTC
README
一个简单的原生Laravel包,用于处理多个认证。
特性
兼容性
安装和配置
使用composer安装
注意:在安装之前,您需要使用php artisan make:auth
创建默认认证,然后删除home.blade.php
。
$ composer require sandrocagara/laravelmultiauth
您还需要发布[#]Sandrocagara\Multiauth\AuthServiceProvider
$ php artisan vendor:publish --force
路由
您需要将以下内容复制粘贴到您的routes/web.php
中。
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::prefix('home')->group(function() {
Route::get('/', 'HomeController@index')->name('home');
Route::get('/change-password','HomeController@showChangePasswordForm')->name('home.change-password.form');
Route::post('/change-password', 'HomeController@changePassword')->name('home.change-password.submit');
Route::get('/logout', 'Auth\LoginController@userlogout')->name('home.logout');
});
Route::prefix('admin')->group(function() {
Route::get('/login', 'Auth\AdminLoginController@showLoginForm')->name('admin.login.form');
Route::post('/login', 'Auth\AdminLoginController@login')->name('admin.login.submit');
Route::get('/', 'AdminHomeController@index')->name('admin.home');
Route::get('/change-password','AdminHomeController@showChangePasswordForm')->name('admin.change-password.form');
Route::post('/change-password','AdminHomeController@changePassword')->name('admin.change-password.submit');
Route::get('/logout', 'Auth\AdminLoginController@logout')->name('admin.logout');
Route::post('/password/email', 'Auth\AdminForgotPasswordController@sendResetLinkEmail')->name('admin.password.email');
Route::get('/password/reset', 'Auth\AdminForgotPasswordController@showLinkRequestForm')->name('admin.password.request');
Route::post('/password/reset', 'Auth\AdminResetPasswordController@reset')->name('admin.reset');
Route::get('/password/reset/{token}', 'Auth\AdminResetPasswordController@showResetForm')->name('admin.password.reset');
});
Route::prefix('super-admin')->group(function() {
Route::get('/login', 'Auth\SuperAdminLoginController@showLoginForm')->name('super-admin.login.form');
Route::post('/login', 'Auth\SuperAdminLoginController@login')->name('super-admin.login.submit');
Route::get('/', 'SuperAdminHomeController@index')->name('super-admin.home');
Route::get('/change-password', 'SuperAdminHomeController@showChangePasswordForm')->name('super-admin.change-password.form');
Route::post('/change-password', 'SuperAdminHomeController@changePassword')->name('super-admin.change-password.submit');
Route::get('/logout', 'Auth\SuperAdminLoginController@superAdminlogout')->name('super-admin.logout');
Route::post('/password/email', 'Auth\SuperAdminForgotPasswordController@sendResetLinkEmail')->name('super-admin.password.email');
Route::get('/password/reset', 'Auth\SuperAdminForgotPasswordController@showLinkRequestForm')->name('super-admin.password.request');
Route::post('/password/reset', 'Auth\SuperAdminResetPasswordController@reset')->name('super-admin.reset');
Route::get('/password/reset/{token}', 'Auth\SuperAdminResetPasswordController@showResetForm')->name('super-admin.password.reset');
});
Route::prefix('account')->group(function() {
Route::get('/user/verified/{token}', 'Auth\RegisterController@accountVerification');
});
Route::fallback(function(){
return back();
});
迁移
然后,您就可以进行迁移了。
php artisan migrate
配置
在config/auth.php
中,重置密码的默认过期时间为30分钟
。您可以通过更新此数组来更改它。
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 30, <-HERE
],
'admins' => [
'provider' => 'admins',
'table' => 'password_resets',
'expire' => 30, <-HERE
],
'super_admins' => [
'provider' => 'super_admins',
'table' => 'password_resets',
'expire' => 30, <-HERE
],
],
使用Laravel Tinker
生成模拟账户
php artisan tinker
用户: factory(App\User::class, 5)->create();
管理员: factory(App\Admin::class, 5)->create();
超级管理员: factory(App\SuperAdmin::class, 5)->create();
默认密码: secret
您可能遇到的常见问题
错误:期望响应代码250,但得到代码"530",信息为"530 5.7.1 认证所需"。
解决方案:您需要设置您的邮件驱动。更多信息请参阅[https://laravel.net.cn/docs/5.6/mail]
错误:当点击邮件中的重置密码时,出现“找不到对象!”。
解决方案:如果您使用的是php artisan serve
,您需要将env文件中的APP_URL
从https://更改为http://127.0.0.1:8000/。
错误:尝试在类型为null的值上访问数组偏移。这种类型的错误可能是由于PHP版本引起的,您可能需要在composer.json中升级PHP版本。
解决方案:尝试使用以下命令更新composer:composer update
错误:“页面由于不活动而过期”。
解决方案:如果您使用的是php artisan serve,您需要将env文件中的APP_URL从https://更改为http://127.0.0.1:8000/。
许可证
MIT © 2020 Sandro Cagara