Menu

8.3. 权限系统

权限系统

现在的应用存在两个巨大的安全隐患:

  1. 未登录用户可以访问 editupdate 动作;
  2. 登录用户可以更新其它用户的个人信息;

接下来让我们针对这两个安全隐患进行修复。

必须先登录

Laravel 中间件 (Middleware) 为我们提供了一种非常棒的过滤机制来过滤进入应用的 HTTP 请求,例如,当我们使用 Auth 中间件来验证用户的身份时,如果用户未通过身份验证,则 Auth 中间件会把用户重定向到登录页面。如果用户通过了身份验证,则 Auth 中间件会通过此请求并接着往下执行。Laravel 框架默认为我们内置了一些中间件,例如身份验证、CSRF 保护等。所有的中间件文件都被放在项目的 app/Http/Middleware 文件夹中。

接下来让我们使用 Laravel 提供身份验证(Auth)中间件来过滤未登录用户的 edit, update 动作。

app/Http/Controllers/UsersController.php

<?php

namespace App\Http\Controllers;
.
.
.
cla...

本文章首发在 Laravel China 社区

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
讨论数量: 37

赖皮小鳄鱼
如何使用 authorize 用户未通过授权如何友好提示?
7 个点赞 | 16 个回复 | 问答 | 课程版本 5.5
cxgang
$this->authorize ('update', $user);为啥不写在 update 方法的第一行?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
Cockroack必死
跟着教程做,授权决策这里卡了?编辑当前用户也不行!
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
zgg548
当前用户没有修改自己信息的权限?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
xinjiahui
登录用户 1,访问用户 2 的编辑页面,还是会有报错?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
zgg548
怎么判断当前是不是管理员?
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
mfsslgs
关于页面 HTML 代码的问题?
0 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
sept-me
请问对 Auth 中间件的 only 跟 except 的理解对吗?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
logic
中间件的用法?
1 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
gotophp
$this->authorize 产生的异常怎么捕获不到?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Mr_Guo
菜鸟请教一条 sql 急急急 谢谢各位大佬了?
1 个点赞 | 15 个回复 | 问答 | 课程版本 5.5
FakeSPrite
lanmingzi
为什么 RedirectIfAuthenticated 里面不能用 return redirect ('home');?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
zhongjidalao
不能进入注册页面,点击会跳转到登陆界面?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
yangyang2018
怎么我跟着教程做,也报这个错误的?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
shwfz01a
增加权限代码后无法退出?
0 个点赞 | 11 个回复 | 问答 | 课程版本 5.5
laravel_23
中间件没起作用呢?
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.1
jiangpanyue
退出頁面報錯
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
wongvio
为什么要 'except' => ['show', 'create', 'store'] 呢?【已解决】
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
wongvio
如果我用 Auth 判断用户是不是自己本身,会有什么问题??
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
happyplay008
middleware 为什么 show 也要 except?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
happyplay008
当前用户没有修改自己信息的权限?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
smalltide
update (User $currentUser, User $user) 問題
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
刻意练习,每日精进。
58
点赞
15631
浏览
37
讨论
贡献者