访客模式
提示
在前面几节的中间件策略中,我们始终没有放开 Auth/@index
的访客访问,在未登录的情况下,直接访问将会跳转到登录页面,并且已登录用户无法浏览其他用户的页面,接下来的步骤将会解决这个问题。
#
放开权限由于在控制器中多个方法都被中间件拦截,现在重新编辑:
application\user\controller\Auth.php
退出登录后再次访问 http://thinkphp.test/user/auth/index ,即可看到所有用户的列表,然后我们随意点击一个用户的名字,发现页面中出现 欢迎您
的字样和 编辑资料
按钮,这是访客模式不可见的,现在我们需要一一解决。
#
判断访客访客分为两种:
- 未登录用户
- 已登录用户访问其他用户页面
非常简单的,虽然拥有两种状态,但是我们只需要在控制器中传入 Session
即可判断。
application\user\controller\Auth.php
再编辑前端页面:
resources\views\user\auth\read.blade.php
现在用不登录和登录状态随意访问其他用户的页面,可以看到以上问题均解决了。
在上一节添加删除按钮的时候,我们删除逻辑中排除了管理员自己删除自己,现在需要在前端页面中移除这个按钮。
resources\views\user\auth\index.blade.php
非常简单的,只需要判断循环列表的用户 god
属性就行。
使用管理员登录并访问所有用户页面,可以看到所有是管理员的删除按钮全部消失了。