Laravel 5框架学习之用户认证
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-22 13:47:16 浏览: 评论:0
本文给大家分享的是Laravel5框架中用户认证系统的使用方法,十分的详细,附上示例,推荐给小伙伴们,有需要的朋友可以参考下。
Laravel 出厂已经带有了用户认证系统,我们来看一下 routes.php,如果删除了,添加上:
- Route::controllers([
- 'auth' => 'Auth\AuthController',
- 'password' => 'Auth\PasswordController'
- ]);
可以使用 php artisan route:list 查看一下。浏览器中访问 /auth/login,可以看到登陆界面,最好把系统默认的 app.blade.php 中关于 google 的东西注释起来,要不然你会疯掉的。
你可以使用 register、login甚至 forget password。
实际注册一个用户,提交后失败了,实际上没有失败,只是larave自动跳转到了 /home,我们已经删除了这个控制器。你可以使用 tinker 看一下,用户已经建立了。
在 Auth\AuthController 中实际上使用了 trait,什么是 triat?well,php只支持单继承,在php5.4中添加了trait,一个trait实际上是一组方法的封装,你可以把它包含在另一个类中。像是抽象类,你不能直接实例化他。
在 Auth\AuthController 中有对 trait 的引用:
use AuthenticatesAndRegistersUsers;
让我们找到他,看一下注册后是怎么跳转的。他隐藏的挺深的,在 vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesAndregistersUsers.php,wow。
- public function redirectPath()
- {
- if (property_exists($this, 'redirectPath'))
- {
- return $this->redirectPath;
- }
- //如果用户设置了 redirectTo 属性,则跳转到用户设置的属性,否则到home
- return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
- }
OK,我们知道了,只要设定 redirectTo 这个属性就可以自定义注册后的跳转了,我们在 Auth\AuthContotroller 中修改:
protected $redirectTo = 'articles';
我们先使用 /auth/logout 确保我们退出,如果出错了不要害怕,我们没有默认的主页,重新访问:auth/register 新建一个用户,这次应该ok了。
再次logout,然后使用 login 登陆一下。
现在我们可以删除 form_partial 中临时设置的隐藏字段了,然后修改控制器:
- public function store(Requests\ArticleRequest $request) {
- //你可以这样
- //$request = $request->all();
- //$request['user_id'] = Auth::id();
- //更简单的方法
- $article = Article::create($request->all());
- //laravel 自动完成外键关联
- Auth::user()->articles()->save($article);
- return redirect('articles');
- }
添加一个文章,然后使用 tinker 查看一下。
中间件
我们当然不希望任何人都能发布文章,至少是登陆用才可以。我们在控制器中添加保护:
- public function create() {
- if (Auth::guest()) {
- return redirect('articles');
- }
- return view('articles.create');
- }
上面的代码可以工作,有一个问题,我们需要在每一个需要保护的方法中都进行上面的处理,这样做太傻了,幸好我们有中间件。
中间件可以理解为一个处理管道,中间件在管道中的某一时刻进行处理,这个时刻可以是请求也可以是响应。依据中间件的处理规则,可能将请求重定向,也可能通过请求。
Tags: Laravel框架学习 Laravel用户认证
相关文章
- ·Laravel 5框架学习之Eloquent 关系(2021-05-22)
- ·Laravel框架Auth用户认证操作实例分析(2021-12-24)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)