Laravel 自带用户认证功能,咱们可用此功能快速构建用户中心。
首先执行认证脚手架命令,生成代码:php
$ php artisan make:auth
命令 make:auth
会询问咱们是否要覆盖 app.blade.php
,由于咱们再已经自定义了「主要布局文件」—— app.blade.php
,因此此处输入 no
css
使用 git status
能够看到 routes/web.php
被修改,咱们查看该文件修改了哪些内容:
routes/web.phphtml
<?php Route::get('/','PagesController@root')->name('root'); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home');
Auth::routes();
是 Laravel 的用户认证路由,这里不须要去修改。git
再看下一行web
Route::get('/home', 'HomeController@index')->name('home');
咱们已经有本身的主页,不须要再次设置主页,直接删除。
同时删除 app/Http/Controllers/HomeController.php
和 resources/views/home.blade.php
两个文件:数据库
$ rm -f app/Http/Controllers/HomeController.php resources/views/home.blade.php
因为咱们删除了 /home
这个路由,所以须要把引用了这个路由的地方都修改掉:浏览器
修改 app/Http/Controllers/Auth/LoginController.php
、 app/Http/Controllers/Auth/RegisterController.php
和 app/Http/Controllers/Auth/ResetPasswordController.php
,将 $redirectTo
的值从 /home
改为 /
。bash
修改 app/Http/Middleware/RedirectIfAuthenticated.php
,将 redirect('/home')
修改成 redirect('/')
。app
手动在浏览器导航栏里输入 http://shop.test/login ,访问登陆页面,便可查看效果。svg
接下来咱们把顶部导航的登陆、注册按钮指向真实的地址。
_resources/views/layouts/header.blade.php
<nav class="navbar navbar-default navbar-static-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse"> <span class="sr-only">Toggle Navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="{{ url('/') }}"> Laravel Shop </a> </div> <div class="collapse navbar-collapse" id="app-navbar-collapse"> <ul class="nav navbar-nav"> </ul> <ul class="nav navbar-nav navbar-right"> <!-- 登陆注册连接开始 --> @guest <li><a href="{{ route('login') }}">登陆</a></li> <li><a href="{{ route('register') }}">注册</a></li> @else <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <span class="user-avatar pull-left" style="margin-right:8px; margin-top:-5px;"> <img src="https://iocaffcdn.phphub.org/uploads/images/201709/20/1/PtDKbASVcz.png?imageView2/1/w/60/h/60" class="img-responsive img-circle" width="30px" height="30px"> </span> {{ Auth::user()->name }} <span class="caret"></span> </a> <ul class="dropdown-menu" role="menu"> <li> <a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();"> 退出登陆 </a> <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> {{ csrf_field() }} </form> </li> </ul> </li> @endguest <!-- 登陆注册连接结束 --> </ul> </div> </div> </nav>
刷新浏览器,将鼠标移到右上角的登陆和注册连接,可看到已经指向了对应的地址。
先执行数据库迁移建立对应的数据库表结构:
$ php artisan migrate
而后经过顶部的注册连接访问注册页面,填入对应信息以后点击 Register 按钮,注册帐号
点击右上角的下拉菜单中的『退出登陆』按钮,再填入上一步注册时使用的邮箱和密码,点击 Login 登陆,就能够看到登陆成功。
$ git add -A $ git commit -m "注册与登陆"