Laravel 用户认证(Auth)

1、生成Auth所需文件

php artisan make:auth

上面这个命令将会在项目的的routes下面的web.php中多一个
 

Auth::routes();

Route::get('/home','HomeController@index');

在浏览器中访问home会发现样式不正确,解决如下:

在resources中的views下会多一些资源,例如auth文件夹(里面是一些登录,找回密码等功能)、layouts文件夹

修改layouts文件下的app.blade.php 文件中的css路径({{ asset('css/app.css') }}),修改js路径为({{ asset('js/app.js') }})

Auth::routes() 的路径在vendor/laravel/framework/src/Routing/Router.php里面

之后访问就如下图:

 现在只是显示成功了,接下来需要修改链接数据库的配置文件,在.env中,修改后就需要生成表,就用到数据迁移

在database/migration下面有两个表,只需要执行命令php artisan migrate 就可以创建成功,然后刷新表就会发现多了三张表,此刻就可以注册成功 了

2、数据迁移

新建迁移文件的两种方式:

1》新建一个student表的迁移文件

php artisan make:migration create_students_table --create=students

--table 和 --create 参数可以用来指定数据表名称,以及迁移文件是否要新建一个新的数据表

2》生成模型的同时生成迁移文件

php artisan make:model Student -m

 

3、数据填充

填充文件的目录是database下面的seeds文件夹下的文件

创建一个填充文件,并完善填充文件

php artisan make:seeder StudentTableSeeder

执行单个填充文件

php artisan db:seed --class=StudentTableSeeder

批量执行填充文件

php artisan db:seed

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel提供了一个方便易用的Auth系统,可以用于用户认证和授权。下面是一个简单的例子,演示如何在Laravel中使用Auth系统进行用户认证: 1. 创建一个用户模型 在Laravel中,可以使用Artisan命令行工具快速生成用户模型。在命令行中运行以下命令: ``` php artisan make:model User -m ``` 这个命令将在app目录下创建一个User.php文件,同时在数据库中创建一个users表格。我们可以在User模型中定义表格名称和字段: ```php use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { protected $table = 'users'; protected $fillable = [ 'name', 'email', 'password', ]; protected $hidden = [ 'password', 'remember_token', ]; } ``` 2. 创建认证控制器 在Laravel中,可以使用Artisan命令行工具快速生成控制器。在命令行中运行以下命令: ``` php artisan make:controller AuthController ``` 这个命令将在app/Http/Controllers目录下创建一个AuthController.php文件。我们可以在这个控制器中定义登录和注册方法: ```php use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class AuthController extends Controller { public function showLoginForm() { return view('auth.login'); } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended('dashboard'); } return redirect('login')->withErrors([ 'email' => 'These credentials do not match our records.', ]); } public function logout() { Auth::logout(); return redirect('login'); } } ``` 在上面的代码中,showLoginForm方法用于显示登录表格。login方法用于处理登录请求,如果验证成功则将用户重定向到dashboard页面。logout方法用于注销用户。 3. 创建路由 在Laravel中,可以使用路由来定义URL和控制器方法之间的映射关系。在routes/web.php文件中添加以下路由: ```php Route::get('login', 'AuthController@showLoginForm')->name('login'); Route::post('login', 'AuthController@login'); Route::post('logout', 'AuthController@logout')->name('logout'); ``` 这些路由定义了/login,/logout和/dashboard这些URL,并将它们映射到AuthController控制器中的相应方法。 4. 创建登录表格 在Laravel中,可以使用Blade模板引擎来创建HTML页面。在resources/views/auth/login.blade.php文件中创建一个登录表格: ```php <form method="POST" action="{{ route('login') }}"> @csrf <div> <label for="email">Email</label> <input id="email" type="email" name="email" value="{{ old('email') }}" required autofocus> @error('email') {{ $message }} @enderror </div> <div> <label for="password">Password</label> <input id="password" type="password" name="password" required> @error('password') {{ $message }} @enderror </div> <div> <button type="submit">Login</button> </div> </form> ``` 在上面的代码中,我们使用Blade模板引擎创建了一个登录表格。@csrf指令用于生成一个随机的CSRF令牌,用于防止跨站请求伪造攻击。@error指令用于显示用户认证失败时的错误消息。 5. 配置认证系统 在Laravel中,可以使用config/auth.php文件来配置认证系统。可以在这个文件中配置用户模型、认证驱动、密码重置选项等等。以下是一个示例配置: ```php return [ 'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', 'hash' => false, ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], ], 'passwords' => [ 'users' => [ 'provider' => 'users', 'table' => 'password_resets', 'expire' => 60, ], ], ]; ``` 在上面的配置中,我们指定了默认的Guard和Password Reset选项,并配置了Web Guard和API Guard。我们还指定了User Provider和Password Reset Provider。 以上就是在Laravel中使用Auth系统进行用户认证的简单例子。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值