mall改造:带你入门pc和移动端的权限系统

前言

最新写的都是mall项目的改造,基本上对目前开源的两个mall项目做了简单的总结和介绍,相信在之前有一定的开发基础知识,对我之前的文章可以很好的入门。

后面的一些文章我就开始针对业务来进行讲解,一天一篇博文估计是没办法实现了,今天我们要说的是权限系统。
 

 

下面这张图就是我们常见的权限系统,用户,角色,角色权限 来构成我们最基本的权限系统。

为什么要有权限系统?

在我们平时玩抖音,头条,或者登陆学校的考试信息网,都是需要手机号或者账号密码的登录,通过账号密码来保证你可以登录你所上的网站。

那我们在具体介绍权限系统之前,先说一说如果没有权限系统会发生什么?

1、私密性

不管是toB的系统,还是toC的系统,首先都要保证我们自己的东西,自己想给谁看给谁看,不能像浏览网页一样谁都可以看。

比方,上学考试,考完试出成绩,成绩通过站内信的方式告诉你考了多少分,这分数你不想让别人知道。但是如果没有权限系统所有人就都知道你的成绩了。

2、安全性

平时我们左右的app或者网站,基本都支持微信/支付宝登录或手机号登录的方式。那大家有没有想过,为什么有的app是支持微信登录,有些是不支持微信登录的。

这是为了保证个人信息的安全,一般接入微信或者其他第三方登录的方式,都是需要对你的app进行审核并且认证的,只有认证后的app才可以使用微信登录的方式,保证了你微信信息的安全。

3、便捷性

如果没有权限系统,就相当于每个人都没有标签,大家都是一样。有了权限系统,计算机就会知道,你是管理员,你可以进入后台管理,你是游客,你只能进行简单的浏览。

认证系统细分

从业务角度来说:

分为:

1、后台登录登出(用户拥有什么权限)

2、第三方登录(用户是否可以通过微信直接登录到我们的系统)

从技术的角度来说:

分为:

1、后台接口控制(api是否可以访问)

2、前端页面控制 (这个网页你是否可以打开)

3、第三方接口登录(俗称sso,单点登录)

4、oauth2认证授权 (认证:你可以访问那些服务,授权:这些服务里你分别是什么角色,可以做那些操作)

5、移动端和pc的区分(这里主要是说的cookie,移动端不存在cookie)

 

mall 采用了什么方式的权限

通过文档的介绍,mall没有使用sso单点登录的方式。目前采用的是我们 1 前端页面控制的方式,下面是mall用户相关的表结构图。

 

其中涉及到权限的litemall_admin(管理员表),litemall_user(用户表),litemall_role(角色表),litemall_ permission(权限表)

admin后台管理用到的表,比较简单的用户-->角色-->权限

移动端权限用到的表(用户数据,和微信的用户数据,并没有权限)

1、微信商场与小程序移动端

之前我说到了,移动端是没有cookie的,litemall的代码也很好的验证了。在移动端的登录这里,操作是更细登录时间后,直接返回token的方式。

微信方式小程序登录,这里可以看到,用户微信授权登录,服务端去微信获取用户信息,如果存在新增,然后返回token。

 

admin后台管理的登录,这里的后台管理和微信方式方式完全不通。
1、商城移动端,因为没有cookie,采用的是账号密码验证,通过jwt来生成token
2、admin后台,使用的shiro来做权限控制,token是shiro的sessionId。

 

说完登录,然后是权限控制

移动端目前只是做了token的验证,请求带token的才可以访问接口。简单来说,就是带token用户可以访问移动端的所有接口。

admin后台,采用shiro权限工具来做权限,没有角色只能访问指定的接口,不可以访问所有接口。

移动端权限

 

admin后台管理

 

总结

市场上权限控制其实很复杂,可以说一个初中级程序员一个公司是不会让他来做权限系统的,因为从网上找到的权限系统,在真身的生产中是很致命的。

但是litemall的权限系统可以作为我们学习权限系统很好的入门项目,admin后台使用shiro权限控制,shiro的学习成本很低可以快速入门。移动端采用自定义token的方式来进行登录,解决移动端没有cookie的问题。

这里只有比较基础的后端api权限,前端控制,sso等都没有提及到,学习技术我们就像爬山,当你达到山顶,你才会发现后面还有更高的山峰,才会觉得自己很渺小。

我是程序员架构师13

喜欢点下关注,你的关注是我写作的最大支持

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值