我们可以在 config/auth.php 文件中进行用户认证的配置:
'eloquent', /* |-------------------------------------------------------------------------- | Authentication Model |-------------------------------------------------------------------------- | | When using the "Eloquent" authentication driver, we need to know which | Eloquent model should be used to retrieve your users. Of course, it | is often just the "User" model but you may use whatever you like. | */ 'model' => App\User::class, /* |-------------------------------------------------------------------------- | Authentication Table |-------------------------------------------------------------------------- | | When using the "Database" authentication driver, we need to know which | table should be used to retrieve your users. We have chosen a basic | default value but you may easily change it to any table you like. | */ 'table' => 'users', /* |-------------------------------------------------------------------------- | Password Reset Settings |-------------------------------------------------------------------------- | | Here you may set the options for resetting passwords including the view | that is your password reset e-mail. You can also set the name of the | table that maintains all of the reset tokens for your application. | | The expire time is the number of minutes that the reset token should be | considered valid. This security feature keeps tokens short-lived so | they have less time to be guessed. You may change this as needed. | */ 'password' => [ 'email' => 'emails.password', 'table' => 'password_resets', 'expire' => 60, ], ];
这是默认的配置,注释写的很清楚了 如果有特别需要可以做更改,一般情况中我们使用默认的就OK。
/**
* 用户认证
*/
// getLogin 用于展示登录表单。
Route::get('/auth/login', 'Auth\AuthController@getLogin');
// postLogin 用于提交用户登录数据。
Route::post('/auth/login', 'Auth\AuthController@postLogin');
// getLogout 用于退出登录。
Route::get('/auth/logout', 'Auth\AuthController@getLogout');
/**
* 用户注册
*/
// getRegister 用于展示注册表单。
Route::get('/auth/register', 'Auth\AuthController@getRegister');
// postRegister 用于提交用户注册数据。
Route::post('/auth/register', 'Auth\AuthController@postRegister');注册视图的路径必须放在 views/auth/ 目录中 并命名为 register.blade.php。
用户注册 Register
注册后跳转的URL有时候不是我们想要的,你可以自定义跳转路由,在AuthController中添加即可:
protected $redirectPath = '/';
我们注册后已经有了用户了 现在可以试试登录的实现了。
登录的视图路径也是有规定的:views/auth/ 然后命名为:login.balde.php
用户登录 Login
登录后的跳转跟注册后的跳转是一样的:
protected $redirectPath = '/';
当登录失败了Laravel会默认跳转回 auth/login 路由,这也是可以自定义的:
protected $loginPath = '/error';
默认的登陆用户名是邮箱,我们可以在AuthController中自定义:
// 该属性默认为email,改成name是以用户名作为账号类型登录。 protected $username = 'name';
我们可以通过Auth门面的方法来访问已经登录进来的用户:
Auth::user()
if (Auth::check()) {
// 这个用户已经登录...
}Laravel支持这种逻辑,我们只需要在AuthController中引入 ThrottlesLogins 这个trait 即可。一分钟内登录5次都不成功就会锁闭一分钟,它是基于 用户名/邮箱和IP地址的。
我们只需要访问 /auth/logout 就可以登出用户了,当然还有一个方法 就是Auth门面方法:
Auth::logout();