权限

登录

权限管理的第一步,就是用户登录,默认情况下,iFace需要后端维护一个session来保持用户的登录状态,配套的后端base-api就是利用redis和cookies实现了一个session的机制,在用户登录成功后,后端会给用户生成一个唯一的seeeionId,并将这个seeeionId写入客户端cookies,并在redis里面作为key保存用户的基本信息和权限信息,之后用户的每个请求都会从cookies里面获得seeeionId,来作为用户登录的凭证。

当然,你还有别的方式来实现,例如jwt,在用户登录成功后,生成一个token返回给前端,前端在每个请求的时候,将token放入headers里面传给后端,后端通过这个token来验证用户。当然通过这个方式,前端的代码要相应做一些改动。

退出登录

按照iFace的设计,后端需要提供一个退出的接口,用于用户手动退出的时候,清理服务端缓存的用户信息,如果你的后端并不需要这个操作,可以在前端代码中去掉这个请求,代码见:/src/modules/common/view/NavView.vue

鉴权

后端需要添加一个过滤器拦截所有的请求,通过比对请求的url和用户有权限的资源url来决定是否放行,后端需要遵循以下约定

  • /public开头的请求表示不需要就能访问的接口,这个类型的请求,直接放行

  • /base开头的请求,是获取一些基础数据的接口,并没有加入到资源管理里面,只要用户登录就能放行

  • 如果还有特殊的请求,后端可以配置一个白名单来放行这些请求

Last updated