Laravel开发:多用户登录验证(1)
之前实现了一次,后来代码忘记放哪了,所以有跳了一次坑。
先贴上Laravel自带的验证代码:
路由:routes/web.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // Authentication Routes... $this ->get( 'login' , 'Auth\LoginController@showLoginForm' )->name( 'login' ); $this ->post( 'login' , 'Auth\LoginController@login' ); $this ->post( 'logout' , 'Auth\LoginController@logout' )->name( 'logout' ); // Registration Routes... $this ->get( 'register' , 'Auth\RegisterController@showRegistrationForm' )->name( 'register' ); $this ->post( 'register' , 'Auth\RegisterController@register' ); // Password Reset Routes... $this ->get( 'password/reset' , 'Auth\ForgotPasswordController@showLinkRequestForm' )->name( 'password.request' ); $this ->post( 'password/email' , 'Auth\ForgotPasswordController@sendResetLinkEmail' )->name( 'password.email' ); $this ->get( 'password/reset/{token}' , 'Auth\ResetPasswordController@showResetForm' )->name( 'password.reset' ); $this ->post( 'password/reset' , 'Auth\ResetPasswordController@reset' ); // After Login... Route::get( '/home' , 'HomeController@index' )->name( 'home' ); |
中间件:config/auth.php(默认的用户认证配置文件auth.php,配置如下)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php return [ 'defaults' => [ 'guard' => 'web' , 'passwords' => 'users' , ], 'guards' => [ 'web' => [ 'driver' => 'session' , 'provider' => 'users' , ], 'api' => [ 'driver' => 'token' , 'provider' => 'users' , ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent' , 'model' => App\User:: class , ], ], 'passwords' => [ 'users' => [ 'provider' => 'users' , 'email' => 'auth.emails.password' , 'table' => 'password_resets' , 'expire' => 60, ], ], ]; |
控制器:
app/Http/Controllers/Auth/RegisterController.php
app/Http/Controllers/Auth/LoginController.php
app/Http/Controllers/Home/HomeController.php
等等...
Table表: users

1 2 3 4 5 6 7 8 9 10 | CREATE TABLE `mgshop_users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; |
Model:app/User.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | namespace App; use Illuminate\Auth\Authenticatable; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContracts; class User extends Model implements AuthenticatableContracts { use Authenticatable; protected $table = 'users' ; //'user';//设置表名 protected $primaryKey = 'id' ; //'UserID';//设置主键 public $timestamps = false; protected $fillable = [ 'name' , 'email' , 'password' ]; //开启白名单字段 } |
该验证仅需执行下面命令即可生成对应数据库表及代码
1 | php artisan make:auth |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!