Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

前后端分离下的用户认证和鉴权实践(一) 概述 #1

Open
ZhuXS opened this issue Oct 16, 2017 · 0 comments
Open

前后端分离下的用户认证和鉴权实践(一) 概述 #1

ZhuXS opened this issue Oct 16, 2017 · 0 comments

Comments

@ZhuXS
Copy link
Owner

ZhuXS commented Oct 16, 2017

为什么要前后端分离

传统后端MVC架构的弊端

  • 前端代码越来越复杂

    • js和css依赖与后台返回的Html
    • 代码之间充满了各种约定,前后端协作困难
    • 部分业务逻辑散落在前端
  • 前后端高度耦合

    • 前端依赖后端的开发环境
    • 在后端的View层高度耦合
    • 职责不清晰
  • 分工问题

    • 沟通和维护的成本上升
    • 无法快速正确的相应变化

前后端分离实践

前后端的划分不应是从硬件上划分,

image

而是应该在职责上进行划分,如

image

后端负责

  • 提供接口
  • 封装业务逻辑
  • 维护数据

前端负责

  • 用户交互,渲染界面
  • 转发数据,串接服务
  • 路由设计,控制逻辑

前后端分离给权限管理带来的挑战

前端要控制页面的跳转和渲染

  • 在一个页面中,用户只能看到其权限相关的组件和菜单项。
  • 依照用户的权限对用户的路由跳转加以控制,当前用户无权访问的url不能暴露给用户。
  • 要避免用户可以访问界面,在调用后端接口时却返回无权限的情况。

后端要控制每一个接口的访问权限

  • 用户登录系统需要认证和授权
  • 每一个接口的访问都应该有相应的权限控制
  • 保持用户的认证和授权状态
  • 单点登录

前后端交互

  • 前端调用后端接口要携带权限信息
  • 后端要对前端请求进行权限验证

权限粒度的设计

主要技术选型

  • 后端

    • Spring Boot
    • Shiro
    • Hibernate
    • Mysql
    • Redis
  • 前端

    • Vue
    • Vue-Router
    • VueX
  • 标准

    • RestFul
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant