laravel5分钟完成登录注册
2016-05-01 19:49
603 查看
以下均是在laravel5.2+版本进行操作,5.1部分适用,建议使用5.2新增许多方便的功能,5.1的多表验证极其麻烦,不推荐使用
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/12/8f9e4553d4287cd3ad1f9f73aebb3fd6)
在使用laravel框架前,我们需要安装composer
在安装好composer以后,让我们建一个新的项目
不懂安装composer的可以看 http://www.phpcomposer.com/
最后的参数是我们需要建立的项目名
laravel 框架默认带着一个model----User,直接放在app下(事实上我们往往会把model放在一个文件夹下,例如我们可以自己去新增model在命令行下,php artisan Models/User,这样我们新增的model就放在了app/Models目录下了)
自带的还有两个数据库迁移文件,create_users_table,create_password_reset_table(放在database/migrations),我们可以直接使用php artisan migrate 来创建数据表(当然前提是你要新建一个数据库,数据库配置写在.env文件里,如果没有就复制.env.example粘贴重命名.env)
接下来输入php artisan make:auth 它会自动生成一些前端视图(放在resources/views),用户登陆后的个人中心的HomeController(Http/Controllers)
也会更新路由(Http/routes.php)如下
除了欢迎界面(刚才已经更新了欢迎见面,可以重新打开查看)外,新增了两条路由,可是我们不太清楚他是指到哪的,可以输入php artisan route:list来查看
$ php artisan route:list
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
| Domain | Method | URI | Name | Action
| Middleware |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | home | | App\Http\Controllers\HomeController@index | web,auth |
| | GET|HEAD | login | | App\Http\Controllers\Auth\AuthController@showLoginForm | web,guest |
| | POST | login | | App\Http\Controllers\Auth\AuthController@login | web,guest |
| | GET|HEAD | logout | | App\Http\Controllers\Auth\AuthController@logout | web |
| | POST | password/email | | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\PasswordController@reset | web,guest |
| | GET|HEAD | password/reset/{token?} | | App\Http\Controllers\Auth\PasswordController@showResetForm | web,guest |
| | GET|HEAD | register | | App\Http\Controllers\Auth\AuthController@showRegistrationForm | web,guest |
| | POST | register | | App\Http\Controllers\Auth\AuthController@register | web,guest |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
此时我们可以尝试注册登陆了
以上已经将注册登录的功能实现了,我们来看看具体的代码吧
从点击注册看,也就是到了 GET register 的这条路由,我们找到AuthController里的showRegistrationForm 这个方法(是放在AuthenticatesAndRegistersUsers里的RegistersUsers这个trait里的)这段代码
即返回views/auth/register.blade.php这个视图文件,这个form的action是这样的
也就是到了 POST register 的那条路由,再找到它的方法
他做的工作就是先验证数据是否合法,如果不合法会返回错误信息,否则就是验证成功,写入数据库,写入cookie登陆,最后跳转到AuthController里定义的 protected $redirectTo =‘/’ 也就是首页了
之后我们可以尝试退出登录,再登陆,也是调用的 trait AuthenticatesUsers 这里的一些方法,此时我们也有了重置密码的功能(忘了密码?)需要在.env文件里填写正确的邮箱,以便于我们发邮件确认。
以上均是基本的单表验证,往往我们用的是前台的一个表和后台的一个表进行多表验证,欢迎看我的下一篇博文,laravel多表验证。
在使用laravel框架前,我们需要安装composer
在安装好composer以后,让我们建一个新的项目
不懂安装composer的可以看 http://www.phpcomposer.com/
composer create-project laravel/laravel laravel
最后的参数是我们需要建立的项目名
laravel 框架默认带着一个model----User,直接放在app下(事实上我们往往会把model放在一个文件夹下,例如我们可以自己去新增model在命令行下,php artisan Models/User,这样我们新增的model就放在了app/Models目录下了)
自带的还有两个数据库迁移文件,create_users_table,create_password_reset_table(放在database/migrations),我们可以直接使用php artisan migrate 来创建数据表(当然前提是你要新建一个数据库,数据库配置写在.env文件里,如果没有就复制.env.example粘贴重命名.env)
接下来输入php artisan make:auth 它会自动生成一些前端视图(放在resources/views),用户登陆后的个人中心的HomeController(Http/Controllers)
也会更新路由(Http/routes.php)如下
Route::get('/', function () { return view('welcome'); }); Route::auth(); Route::get('/home', 'HomeController@index');
除了欢迎界面(刚才已经更新了欢迎见面,可以重新打开查看)外,新增了两条路由,可是我们不太清楚他是指到哪的,可以输入php artisan route:list来查看
$ php artisan route:list
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
| Domain | Method | URI | Name | Action
| Middleware |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | home | | App\Http\Controllers\HomeController@index | web,auth |
| | GET|HEAD | login | | App\Http\Controllers\Auth\AuthController@showLoginForm | web,guest |
| | POST | login | | App\Http\Controllers\Auth\AuthController@login | web,guest |
| | GET|HEAD | logout | | App\Http\Controllers\Auth\AuthController@logout | web |
| | POST | password/email | | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\PasswordController@reset | web,guest |
| | GET|HEAD | password/reset/{token?} | | App\Http\Controllers\Auth\PasswordController@showResetForm | web,guest |
| | GET|HEAD | register | | App\Http\Controllers\Auth\AuthController@showRegistrationForm | web,guest |
| | POST | register | | App\Http\Controllers\Auth\AuthController@register | web,guest |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
此时我们可以尝试注册登陆了
以上已经将注册登录的功能实现了,我们来看看具体的代码吧
从点击注册看,也就是到了 GET register 的这条路由,我们找到AuthController里的showRegistrationForm 这个方法(是放在AuthenticatesAndRegistersUsers里的RegistersUsers这个trait里的)这段代码
/** * Show the application registration form. * * @return \Illuminate\Http\Response */ public function showRegistrationForm() { if (property_exists($this, 'registerView')) { return view($this->registerView); } return view('auth.register'); }
即返回views/auth/register.blade.php这个视图文件,这个form的action是这样的
<form class="form-horizontal" role="form" method="POST" action="{{ url('/register') }}">
也就是到了 POST register 的那条路由,再找到它的方法
/** * Handle a registration request for the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function register(Request $request) { $validator = $this->validator($request->all()); if ($validator->fails()) { $this->throwValidationException( $request, $validator ); } Auth::guard($this->getGuard())->login($this->create($request->all())); return redirect($this->redirectPath()); }
他做的工作就是先验证数据是否合法,如果不合法会返回错误信息,否则就是验证成功,写入数据库,写入cookie登陆,最后跳转到AuthController里定义的 protected $redirectTo =‘/’ 也就是首页了
之后我们可以尝试退出登录,再登陆,也是调用的 trait AuthenticatesUsers 这里的一些方法,此时我们也有了重置密码的功能(忘了密码?)需要在.env文件里填写正确的邮箱,以便于我们发邮件确认。
以上均是基本的单表验证,往往我们用的是前台的一个表和后台的一个表进行多表验证,欢迎看我的下一篇博文,laravel多表验证。
相关文章推荐
- PHP获取当前时间、时间戳的各种格式写法汇总[日期时间]
- php静态方法
- ThinkPHP3.2的Excel导入
- phpMyAdmin配置与安装
- vsftpd基于pam虚拟用户认证,还怕泄漏账号么?
- PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
- thinkphp 设置跨域请求
- PHP关于Ajax返回多个json数据的处理
- 【1】引用计数基本知识
- JetBrains PhpStorm 所有版本通用注册码
- PHP基础之进制的转换
- PHP (sendmail / PHPMailer / ezcMailComposer)发送邮件
- 配置FTP服务器——passive mode
- ubuntu 16.04 php 开发环境搭建
- PHP数据库拓展之PDO使用总结
- PHP中define()和dirname(__FILE__)
- php 操作数组array_merge使用时数组包含数字键名的问题解决方法
- thinkphp3.2.3连接sqlserver 2008 R2 数据库
- Thinkphp if标签不起作用 变量嵌套层次太多的原因
- IOS推送服务端PHP简要记述