Laravel5.1 框架登录和注册实现方法详解
本文实例讲述了Laravel5.1 框架登录和注册实现方法。分享给大家供大家参考,具体如下:
关于登录和注册 Laravel自带了一套组件实现了这一功能,我们只需要实现简单的视图即可。
AuthController是专门管理用户注册和登录的。
PassWordController是重置密码用的,今天暂不做记录。
1 配置
我们可以在 config/auth.php 文件中进行用户认证的配置:
<?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。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用户注册</title> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" > </head> <body> <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">Register</div> <div class="panel-body"> <form action="{{ url('/auth/register') }}" method="post" role="form" class="form-horizontal"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <div class="form-group"> <label class="col-md-4 control-label">用户名:</label> <div class="col-md-6"> <input type="text" name="name" class="form-control" autofocus> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">邮箱:</label> <div class="col-md-6"> <input type="email" name="email" class="form-control"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">密码:</label> <div class="col-md-6"> <input type="password" name="password" class="form-control"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">确认密码:</label> <div class="col-md-6"> <input type="password" name="password_confirmation" class="form-control"> </div> </div> <div class="form-group"> <div class="col-md-offset-4 col-md-8"> <button type="submit" class="btn btn-primary">注册</button> </div> </div> </form> </div> </div> </div> </div> </div> </body> </html>
3.2 修改跳转URL
注册后跳转的URL有时候不是我们想要的,你可以自定义跳转路由,在AuthController中添加即可:
protected $redirectPath = '/';
4 登录实现
我们注册后已经有了用户了 现在可以试试登录的实现了。
4.1 编写视图
登录的视图路径也是有规定的:views/auth/ 然后命名为:login.balde.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用户登录</title> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" > </head> <body> <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">Login</div> <div class="panel-body"> <form action="{{ url('/auth/login') }}" method="post" role="form" class="form-horizontal"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <div class="form-group"> <label class="col-md-4 control-label">邮箱:</label> <div class="col-md-6"> <input type="email" name="email" class="form-control"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">密码:</label> <div class="col-md-6"> <input type="password" name="password" class="form-control"> </div> </div> <div class="form-group"> <div class="col-md-offset-4 col-md-8"> <button type="submit" class="btn btn-primary">登录</button> </div> </div> </form> </div> </div> </div> </div> </div> </body> </html>
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相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
栏 目:PHP编程
下一篇:Laravel5.1 框架数据库查询构建器用法实例详解
本文地址:https://www.xiuzhanwang.com/a1/PHPbiancheng/10971.html
您可能感兴趣的文章
- 01-11thinkphp框架类库扩展操作示例
- 01-11关于Yii2框架跑脚本时内存泄漏问题的分析与解决
- 01-11php 实现简单的登录功能示例【基于thinkPHP框架】
- 01-11Laravel框架Blade模板简介及模板继承用法分析
- 01-11Laravel 微信小程序后端实现用户登录的示例代码
- 01-11Laravel框架基础语法与知识点整理【模板变量、输出、include引入
- 01-11Laravel框架Eloquent ORM删除数据操作示例
- 01-11Laravel框架Eloquent ORM修改数据操作示例
- 01-11Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
- 01-11laravel5.1框架下的批量赋值实现方法分析
阅读排行
本栏相关
- 04-02php本站才可以请求数据 php本地数据库
- 04-02关于txt数据库php的信息
- 04-02php打印请求数据 php打印输出结果
- 04-02网页里php操作数据库 php网页例子
- 04-02php插入数据库为乱码 php连接数据库乱
- 04-02php数据库地址 phpstudy 数据库
- 04-02php数据库数据相加 php数据库添加数据
- 04-02数据权限架构思路php 数据权限设计方
- 04-02php数据库输入变量 php里输出数据库数
- 04-02php如何用导入数据 php用来导入其他文
随机阅读
- 01-11ajax实现页面的局部加载
- 04-02jquery与jsp,用jquery
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10C#中split用法实例总结
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10SublimeText编译C开发环境设置
- 01-10delphi制作wav文件的方法
- 08-05织梦dedecms什么时候用栏目交叉功能?