PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

javascript - 求登陆后根据用户权限跳转不同后台的实现思路

原创
2016-06-06 20:38:03 1163浏览

现需实现一个登录系统,前端bootstrap,后端php+mysql。

  • 数据库记录用户权限,一共四种,现需根据登陆用户的权限跳转到不同后台(比如su跳转到管理页面,非su跳转到个人信息页面),实现思路是什么?
  • 我试着用Ajax请求不同页面的代码然后用js无刷新重写整个页面,但是有很多问题,是这个思路行不通还是我的实现有问题?

小弟刚开始接触网页,跪求高人指点迷津!

回复内容:

现需实现一个登录系统,前端bootstrap,后端php+mysql。

  • 数据库记录用户权限,一共四种,现需根据登陆用户的权限跳转到不同后台(比如su跳转到管理页面,非su跳转到个人信息页面),实现思路是什么?
  • 我试着用Ajax请求不同页面的代码然后用js无刷新重写整个页面,但是有很多问题,是这个思路行不通还是我的实现有问题?

小弟刚开始接触网页,跪求高人指点迷津!

首先,我想不明白你用 Ajax 的理由,你说的请求不同页面的代码是指?
然后,对于这种问题,基本思路大概是这样的:js 负责前端数据在提交前的验证,比如登录时,你可以用js使其通过验证才能提交数据,那在通过前端验证之后,数据就被提交到后端了(这里就是你说的php),到了后端干嘛呢?那在这里如果数据要入库,一般都是在入库之前由php再验证一次,如果不用入库而是像登录这种跟数据库交互的时候也交给后端来实现,然后在后台会执行一些列的逻辑判断,就像你说的根据等级判断来跳转到不同的页面,以下是一个简单的例子,假设这个是verify.php,你把数据POST到这里,然后:

isLogin()) {
if($user->isCommonUser()){
    $this->redirect("profile/index");
}
if($user->isPrivilegeUser()){
    $this->redirect("privilege/index");
}
if($user->isAdmin()){
    $this->redirect("admin/index");
}
}

个人认为,其实这个用户也就是角色,那么角色也就是权限的分配,你的后台能读取什么权限就显示什么权限,这样子的好处就是能全方位的控制住你后台的权限,所以我觉得还是得按照RBAC的思路去构造你的权限。这样就形成了每个管理员拥有不用的导航,即不同的页面权限。之后所谓的跳转到哪个页面,只要对角色进行跳转控制即可!

判断直接在登录的控制器中解决就可以了,控制器检测到登录成功后,接着判断用户权限,然后根据权限直接redirect url就行了
对于第二个问题,我个人认为Ajax尽量去做辅助,整个页面使用js重写感觉有点过了
一般我在写一些web应用的时候ajax一般用在表单提交、数据加载上,这样通过ajax得到服务器返回的json数据,再填充到页面上就好了。

对于web开发的初学者,最好不要一开始就去单纯的去研究如何使用某种语言去编写,而是应该在学习编写web应用的过程中去搞清楚web中一些概念,比如什么是forward、什么是redirect、get/post/put/delete有什么区别,以及你当前使用的编程语言是如何实现这些东西的。

以上仅为个人愚见,仅供参考~

对于权限控制,页面跳转都要放在后台,这样才安全!

1、数据库四个权限中记录每个权限要跳转到的页面
2、PHP head / meta 跳转即可,
3、当然四个后台页面也是要判断权限的

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。