Laravel实现用户注册和登录(8)

这里再多说一句,这个Dashboard的页面一般是在登录后才能看到的,为了限制一些没登录的人到处乱逛,我们只需要在UsersController中的构造函数加一行代码,变成这样的:

复制代码 代码如下:


    public function __construct() {
    $this->beforeFilter('csrf', array('on'=>'post'));
    $this->beforeFilter('auth', array('only'=>array('getDashboard')));
}

现在逻辑是不是很清晰,我们接下来的一步自然是创建dashboard.blade.php文件了,这个从getDashboard()看出我们依然是将这个视图文件存在views/users/目录下,我们就简单地在dashboard.blade.php写上几行入门级的HTML:

复制代码 代码如下:


<div>
    <center>
    <a href="" target="_blank">
<img src="https://wt-prj.oss.aliyuncs.com/766e22da1e8c467a8af35d90c9185409/7680dd9d-c0e4-42ea-86b8-ddd63d07faa6.png" >
</a>
    </center>
    <center><h1>欢迎来到管理面板!</h1></center>
</div>

写到这里我们还不能登录,因为在Laravel中auth过滤(filter)会默认将没登录的用户重定向到/login,但我们需要的是重定向到users/login,所以我们需要自定义我们的filter规则,打开app/filter.php,在代码的开始加上下面的代码:

复制代码 代码如下:


Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::guest('users/login');
});

到这里就大功告成了,如果你之前注册了一个用户,请用你的邮箱和密码到

:8000/users/login

尝试登录一下,你会发现:Bingo!!!登录进去了!

9.实现退出

但是细心的你发现了没,我们还有一个需要完善的地方.....没错!就是我们的导航,我们已经登录进去了,它还是显示登录和注册,不科学啊!所以回到最初我们的main.blade.php在链接部分我们将它改为:

复制代码 代码如下:


          <ul>
          @if(!Auth::check())
               <li>{{ HTML::link('users/register', '注册') }}</li>
               <li>{{ HTML::link('users/login', '登陆') }}</li>

@else
            <li>{{ HTML::link('users/logout', '退出') }}</li>
            @endif
            </ul>

没错,我们为导航这里加入了条件判断语句,如果用户没有通过Auth::check(),也就是没有登录的话,我们显示登录和注册,如果登录了就显示退出,

既然有了users/logout这个链接,那么我们就会想到在UsersController写这个getLogout()方法,而且这个方法是负责清理用户的登录信息的,所以:

复制代码 代码如下:


public function getLogout() {
        if(Auth::check())
        {
            Auth::logout();
        }
    return Redirect::to('users/login')->with('message','你现在已经退出登录了!');
    }

这里我们Auth::logout()将用户的登录信息(主要就是session信息)清除掉,然后再将用户重定向到登录界面。

10.最后的最后

这个小教程写到这里就基本结束了,希望各位玩的愉快。最后多说一句:编程是我们最容易学习的超能力,永远要相信自己可以改变世界!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/863eb9426af8db94032a8da2251bfc08.html