8.3. 权限系统

权限系统

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

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

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

必须先登录

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

接下来让我们使用 Laravel 提供身份验证(Auth)中间件来过...

本文章首发在 LearnKu.com 网站上。

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

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 61

赖皮小鳄鱼
如何使用 authorize 用户未通过授权如何友好提示?
7 个点赞 | 16 个回复 | 问答 | 课程版本 5.5
sphard
403 页面中文翻译文件报错了
3 个点赞 | 4 个回复 | 问答 | 课程版本 5.7
Mr_Guo
菜鸟请教一条 sql 急急急 谢谢各位大佬了?
2 个点赞 | 15 个回复 | 问答 | 课程版本 5.5
Moonshadow2333
8.0版本 报错未定义\Gate::guessPolicyNamesUsing()
2 个点赞 | 12 个回复 | 问答 | 课程版本 8.x
logic
中间件的用法?
1 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
XiangyangZhu
怎么判断当前是不是管理员?
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
qietugou
$this->authorize 产生的异常怎么捕获不到?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
shwfz01a
增加权限代码后无法退出?
0 个点赞 | 11 个回复 | 问答 | 课程版本 5.5
mfsslgs
关于页面 HTML 代码的问题?
0 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
Alexander-
Trying to get property 'headers' of non-object
0 个点赞 | 4 个回复 | 问答 | 课程版本 6.x
happyplay008
当前用户没有修改自己信息的权限?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
happyplay008
middleware 为什么 show 也要 except?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
yangyang2018
怎么我跟着教程做,也报这个错误的?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
XiangyangZhu
当前用户没有修改自己信息的权限?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
Cockroack必死
跟着教程做,授权决策这里卡了?编辑当前用户也不行!
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
zhongjidalao
不能进入注册页面,点击会跳转到登陆界面?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
xinjiahui
登录用户 1,访问用户 2 的编辑页面,还是会有报错?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
cxgang
$this->authorize ('update', $user);为啥不写在 update 方法的第一行?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
holyLight
进入 tinker 时提示 “找不到 registerPolicies ()”
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
phpervip
PHP artisan make:policy UserPolicy 已解决
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
smalltide
update (User $currentUser, User $user) 問題
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
jiangpanyue
退出頁面報錯
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
sept-me
请问对 Auth 中间件的 only 跟 except 的理解对吗?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
qingshui
intended () 重新定向问题
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
cyan
请问 Auth 中间件与 Auth::logout () 中的 Auth 有什么联系吗?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.8
huanwuxusheng
中间件检测
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.8
Yuan_
无需登录,通过改写 url 即可进入用户 show 页面???
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
Narcissus
wongvio
如果我用 Auth 判断用户是不是自己本身,会有什么问题??
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
wongvio
为什么要 'except' => ['show', 'create', 'store'] 呢?[已解决]
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
lanmingzi
为什么 RedirectIfAuthenticated 里面不能用 return redirect ('home');?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Hpeng
xll123
Gate::guessPolicyNamesUsing()原理
0 个点赞 | 0 个回复 | 分享 | 课程版本 8.x
kakaxi
为什么输入密码登录的时候,也会提示 “无需再次操作”
0 个点赞 | 0 个回复 | 问答 | 课程版本 7.x
qymsw
SessionsController中间件'guest'跟UsersController一样
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x
渔郎
edit () 方法中添加了 $this->authorize ('update', $user); 后报错
0 个点赞 | 0 个回复 | 分享 | 课程版本 6.x
zhaohongrui
登录用户点击编辑资料打不开报错 403
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.8
poison
Auth 未登录用户 403
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.7