环境说明

windows10
laravel 5.2
php 5.6.15
apache 2.4.17
Homestead v2.1.8

Laravel 5.2简单介绍

Laravel 5.2 在 5.1 基础上继续改进和优化:添加多认证驱动支持、隐式模型绑定、简化 Eloquent 全局作用域、可选择的认证脚手架、中间件组、访问频率限制、数组输入验证改进等等。

安装laravel 5.2

在终端通过 Composer 的 create-project 命令来安装 Laravel 5.2 应用

如何快速的实现登陆和密码重置

在旧版本的 laravel 中,开发者把 auth 的 view 视图去掉了,在 laravel 5.2 中,开发者增加了一个新的命令 make:auth ,是使用者能够快速的实现登陆和密码重置,接下来让我们来学习他。

首先,在服务器端输入 php artisan 命令行,可以看到所有的命令,这里我们可以看到新增加的命令行 make:auth,图如下:

enter image description here

输入命令行 php artisan make:auth ,可以看到laravel为我们生存了有关登陆的所有 view 和 HomeController,效果图如下:

enter image description here

然后我们访问 http://www.laravel.com/(注:这是我本地配置的虚拟地址,如没有配置的直接访问localhost就行),可以看到一下效果图:

enter image description here

接下来我们来注册一个账号,然后登陆,看是否可以实现登陆,图如下:

enter image description here enter image description here

如上图所示,当我们登陆成功以后,页面重定向到了 home 这个url,如何实现的呢,我们找到登陆的实现的控制器 AuthController,源码如下:

同时查看重定向到的 home 页面的控制器,HomeController控制器,源码如下:

在我们执行 php artisan make:auth 命令之后,在 routes.php 文件中,自动注册了路由,代码如下:

可以看到源码中,注册了一个 auth() 和 一个 url 为home的路由,当访问 home 时,会执行 HomeController 控制器下的 index 方法。这里你会有个疑问 auth() 是怎么实现的呢,在laravel 5.2中,有关登录的路由都集成到 auth() 方法里了,文件所在路径 vendor/laravel/framework/src/illuminate/Routing/Router.php,源码如下:

如果要查看路由器下注册了多少路由,我们可以用 php artisan route:list 命令行来查看,如下图:

enter image description here

在图中我们可以看到,使用 auth() 以后,有关登录注册的路由都已经生成。

接下来我们来实现密码的重新设置。在根本的下打开 .env 找到如下代码,把第一行的 smtp 改成log,本地接收密码重置的token。

然后在打开浏览器,访问 http://www.laravel.com/password/reset 页面,把之前注册的邮箱输入进去,并且点击发送。图如下:

enter image description here

打开本地之前绑定的数据库,找到 password_resets 数据表,在表中可以看到你重置密码的邮箱以及一个 token,把token复制下来,在浏览器访问 http://www.laravel.com/password/reset/这里放token值,可以看到我们进入到了密码重置也么,这里我们重现设定我们的密码,成功后,页面自动跳转到首页,图如下:

enter image description here

此外需要注意登录失败次数限制,默认情况下,一分钟内登录5次失败就不能再登录了(基于用户名/邮箱+IP),该功能通过ThrottlesLoginstrait实现。

总结

  • 通过上诉内容,我们可以了解到,在 laravel 5.2 中,如何使用命令行 php artisan make:auth 快速的实现登陆和密码重置。同时了解到在路由中 auth(); 代表的是什么,如何产生的。
Tagged:

发表评论

电子邮件地址不会被公开。 必填项已用*标注