Coder Social home page Coder Social logo

springboot-vue-shiro's Introduction

springboot-vue-shiro 基于Shiro前后端分离的认证与授权

提供一套基于SpringBoot-Vue-Shiro前后端分离的权限管理思路。 主要目的在于整合主流技术,寻找最佳前后端分离项目的权限管理方案,实现可直接使用的基础开发框架。

技术选型

选用SpringBoot+Shiro+JWT实现登录认证,结合Redis服务实现token的续签,前端选用Vue动态构造路由及更细粒度的操作权限控制。

  • 前后端分离项目中,我们一般采用的是无状态登录:服务端不保存任何客户端请求者信息,客户端需要自己携带着信息去访问服务端,并且携带的信息可以被服务端辨认。
  • Shiro默认的拦截跳转都是跳转url页面,拦截校验机制恰恰使用的session;而前后端分离后,后端并无权干涉页面跳转。
  • 因此前后端分离项目中使用Shiro就需要对其进行改造,我们可以在整合Shiro的基础上自定义登录校验,继续整合JWT(或者oauth2.0等),使其成为支持服务端无状态登录,即token登录。
  • Vue项目中,只需要根据登录用户的权限信息动态的加载路由列表就可以动态的构造出访问菜单。

整体流程

  • 首次通过post请求将用户名与密码到login进行登入,登录成功后返回token
  • 每次请求,客户端需通过headertoken带回服务器做JWT Token的校验;
  • 服务端负责token生命周期的刷新,用户权限的校验;

目录说明

  1. serve:Java后台服务代码
  2. portal:后台管理前端页面代码
  3. db:SQL文件目录

写了一个系列的教程配套文章,从零开始构建:

快速启动

# 克隆项目
git clone https://github.com/chaooo/springboot-vue-shiro.git

启动后端Java项目:

  • 导入SQL文件到数据库。
  • IDEA打开springboot-vue-shiro/server后端项目,pom.xml导包完成后直接启动。

启动前端Vue项目:

# 进入前端项目目录
cd springboot-vue-shiro/portal
# 安装依赖
npm install --registry=https://registry.npm.taobao.org
# 启动服务
npm run dev

效果演示

License

MIT License

springboot-vue-shiro's People

Contributors

chaooo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.