# shiro_and_google_auth_前后分离版 **Repository Path**: OldCorpseChen/shiro_and_google_auth_FES ## Basic Information - **Project Name**: shiro_and_google_auth_前后分离版 - **Description**: shiro_and_google_auth_前后分离版 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-13 - **Last Updated**: 2021-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # shiro_and_google_auth_FES #### 介绍 前后端分离版本,不分离版本在这:https://gitee.com/OldCorpseChen/shiro_and_google_auth 使用springboot为主体框架,整合shiro、redis、GoogleAuthenticator动态认证方法(二步认证),实现关键页面进行二次动态认证,普通页面正常登陆验证逻辑 #### 软件架构 软件架构说明 主体框架:springboot 安全框架:shiro 数据库:redis 移动端配合:google Authenticator APP #### 实现原理 使用 shiro 中 realm 的授权逻辑,每次访问需要权限的资源时都会走一次授权认证的 doGetAuthorizationInfo 方法,若通过则能访问到资源,若不通过则会到达默认或自定义的未授权页面,通过一个 mapping 来接收该请求,通过本 demo 中的 judgeAuth 方法查询该用户的权限,是管理员权限则可进入二步认证页面,若不是则会跳转到未授权页面,从而保证了普通用户和管理员一般功能的正常登录使用,也可拦截无权限的用户访问到二步认证页面。 与不分离版本区别: ​ 1、使用 judgeAuth() 方法直接代替了登录/权限/二步验证的接口,前端直接通过该接口查询进行逻辑处理,后端删除不使用接口 ​ 2、绑定图片的接口优化,已绑定后则不显示图片并提示和跳转回主页 ​ 3、前端JS使用API变量做统一接口路由,简化代码 ![](C:\Users\ChenZhiJun\OneDrive\桌面\shiro_goolgeAuth逻辑.png) #### 使用说明 1. redis数据库配置在 application.properties 中进行修改 2. shiroConfig 中修改需要二步认证的权限名称及页面,并在 controller 中stepAuthAction 方法替换成需要的权限名称 3. 因为懒,所以将service层省略了,逻辑很简单,因而不封装了 #### 反馈 有啥意见请轻喷,非职业程序员,仅兴趣爱好