问题遇到的现象和发生背景
微信小程序商场未登录情况下不是可以下单的,如果别人知道下单的接口或者售后的接口那么这块如何进行权限控制呢?
- 小程序授权并调用登录成功后,后台生成一个Token(UUID,JWT)每次请求前端都需要带上Token
- Token保存在Redis并记录小程序会话密钥与当前用户ID
- 请求进入时按照以下流程:
- 检查是否存在Token
- 检查Token是否过期
- 通过Token获取用户ID并且检查用户状态是否正常
- 通过用户获取用户所在角色组,权限组
- 判断用户所在用户组或权限组是否存在该接口,存在则允许访问,不存在则不允许访问
通过Token可以解决未登录用户访问需登录才能访问的接口权限问题。
通过权限组或角色组解决用户能访问接口范围问题。
可使用Sa-Token,Shiro等框架实现。
写个拦截器,所有访问接口的请求都要进一边拦截器的代码,然后拦截器里面去判断用户密码,类似于aop