PHP用户注册登录设计思路,Laravel5.1 框架登录和注册实现方法详解

本文实例讲述了Laravel5.1 框架登录和注册实现方法。分享给大家供大家参考,具体如下:

关于登录和注册 Laravel自带了一套组件实现了这一功能,我们只需要实现简单的视图即可。

AuthController是专门管理用户注册和登录的。

PassWordController是重置密码用的,今天暂不做记录。

1 配置

我们可以在 config/auth.php 文件中进行用户认证的配置:

return [

/*

|--------------------------------------------------------------------------

| Default Authentication Driver

|--------------------------------------------------------------------------

|

| This option controls the authentication driver that will be utilized.

| This driver manages the retrieval and authentication of the users

| attempting to get access to protected areas of your application.

|

| Supported: "database", "eloquent"

|

*/

'driver' => '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。

2 创建路由

/**

* 用户认证

*/

// 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');

3 注册实现

3.1 编写视图

注册视图的路径必须放在 views/auth/ 目录中 并命名为 register.blade.php。

用户注册
Register

用户名:

邮箱:

密码:

确认密码:

注册

3.2 修改跳转URL

注册后跳转的URL有时候不是我们想要的,你可以自定义跳转路由,在AuthController中添加即可:

protected $redirectPath = '/';

4 登录实现

我们注册后已经有了用户了 现在可以试试登录的实现了。

4.1 编写视图

登录的视图路径也是有规定的:views/auth/ 然后命名为:login.balde.php

用户登录
Login

邮箱:

密码:

登录

4.2 登录后跳转

登录后的跳转跟注册后的跳转是一样的:

protected $redirectPath = '/';

4.3 登录失败跳转

当登录失败了Laravel会默认跳转回 auth/login 路由,这也是可以自定义的:

protected $loginPath = '/error';

4.4 修改登录用户名

默认的登陆用户名是邮箱,我们可以在AuthController中自定义:

// 该属性默认为email,改成name是以用户名作为账号类型登录。

protected $username = 'name';

4.5 查看用户信息

我们可以通过Auth门面的方法来访问已经登录进来的用户:

Auth::user()

4.6 检查用户是否登录

if (Auth::check()) {

// 这个用户已经登录...

}

4.7 用于登录失败次数限制

Laravel支持这种逻辑,我们只需要在AuthController中引入 ThrottlesLogins 这个trait 即可。一分钟内登录5次都不成功就会锁闭一分钟,它是基于 用户名/邮箱和IP地址的。

5 登出用户

我们只需要访问 /auth/logout 就可以登出用户了,当然还有一个方法 就是Auth门面方法:

Auth::logout();

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

你可能感兴趣的:(PHP用户注册登录设计思路)