统一认证中心-项目工程介绍
在 上一篇文章
介绍了小强统一认证中心的功能点。本文主要讲解项目工程
相关文章
- 统一认证中心简介
- 多平台部署实例
1.源码地址
源码地址:传送门
2.后端工程介绍
2.1工程模块介绍
工程模块 | 名称 | 备注 |
---|---|---|
sso-auth-center-service | 父工程 | 定义统一依赖版本等 |
sso-auth-center-admin | 后台web,统一开放网关 | boot项目,后台controller层 |
sso-business | dao与业务层 | dao层,service层 |
sso-common | 公共部分 | 工具类、常量类、注解、枚举、业务自定义异常 |
sso-framework | 核心配置 | 数据源配置、redis配置、验证码、统一异常处理 等 |
2.2分模块介绍
2.3开放接口
接口位置:com.sso.controller.getway.OpenApiController#gateway
网关设计详见:Java系统开放接口统一网关设计
2.4开放接口文档
注:这里是子系统对接认证中心的开放接口。
请求地址:/open/gateway
请求方式:post
Content-Type:application/json;charset=UTF-8
入参:
参数名称 | 含义 | 类型 | 是否必填 | 备注 |
---|---|---|---|---|
apiRequestId | 请求标识 | String | 必填 | 要求唯一,推荐使用UUID |
sysCode | 系统编码 | String | 必填 | 系统的唯一编码,多环境可加后缀区分。 |
method | 请求方法名 | String | 必填 | 申请认证接口固定值:com.sso.applyAuth |
version | 版本 | String | 必填 | 固定值 1.0 |
timestamp | 时间戳 | String | 必填 | 当前时间戳,13位格式,要求5分钟以内可通过 |
signType | 签名类型 | String | 非必填 | 1-MD5 2-RSA |
注:若在认证中心配置了验签则必填 | ||||
sign | 签名内容 | String | 非必填 | 签名内容 |
注:若在认证中心配置了验签则必填 | ||||
content | 业务参数JSON | String | 非必填 | {“ssoToken”:""} |
content参数
参数名称 | 含义 | 类型 | 是否必填 | 备注 |
---|---|---|---|---|
ssoToken | token值 | String | 非必填 | 无token则返回认证中心登录地址 |
redirectUrl | 跳转地址 | String | 非必填 | 授权登录成功后跳转的地址 |
loginOutUrl | 退出登录地址 | String | 非必填 | 当前注册上来的子系统退出登录地址 |
menuType | 菜单类型 | String | 非必填 | 系统的唯一编码,多环境可加后缀区分。 |
返参:
公共参数
参数名称 | 含义 | 类型 | 是否必填 |
---|---|---|---|
code | 状态码 | String | 必填 |
data | 业务参数内容 | Object | 必填 |
msg | 描述 | String | 必填 |
申请认证业务参数
参数名称 | 含义 | 类型 | 是否必填 | 备注 | |
---|---|---|---|---|---|
authResult | 认证结果 | boolean | 是 | 是否成功 | |
redirectUrl | 跳转地址 | String | 非必填 | authResult为false时返回 | |
userId | 用户ID | Long | 非必填 | authResult为true,认证成功时返回 | |
username | 用户登录名 | String | 非必填 | ||
nickName | 用户昵称 | Sting | 非必填 | ||
realName | 真实姓名 | String | 非必填 | ||
avatar | 头像地址 | String | 非必填 | ||
sex | 用户性别0-男;1-女;2-未知 | String | 非必填 | ||
phone | 手机号码 | String | 非必填 | ||
邮箱 | String | 非必填 | |||
sysCode | 系统编码 | String | 非必填 | ||
sysName | 系统名称 | String | 非必填 | ||
permissionList | 在当前系统下的-权限列表 | String [] | 非必填 | ||
roleKeyList | 在当前系统下的-角色标识 | String [] | 非必填 | ||
menuList | menuId | 菜单ID | Long | 菜单信息 | |
menuName | 菜单名称 | String | |||
menuParentId | 父菜单ID | Long | |||
menuType | 菜单类型(M目录 C菜单 F按钮) | String | |||
sortNum | 显示顺序 | Integer | |||
path | 菜单路由地址 | String | |||
icon | 菜单图标 | String | |||
component | 组件路径 | String | |||
visible | 是否显示 0-显示;1-隐藏 | Integer |
调用示例:
- 认证失败返回子登录地址
调用示例:
- 认证成功返回用户信息+菜单权限信息
2.5签名规则
子系统调用申请认证接口时,加签验证逻辑。
以此来保证通讯信息的安全和完整。接口支持MD5和RSA两种方式签名。
签名原文串:
将提交的接口参数按参数名字母顺序(升序、区分大小写)、以&符逐个拼接参数名=参数值而形成,
移除不参与验签的参数 sign, signType
注:空值或全空串参数无需移除。(可参考样例代码)
- MD5方式,须在签名原文串后面拼上&secret=xxSecret后进行MD5加签,xxSecret为在认证中心后台添加的秘钥串
- RSA方式,子系统用私钥进行加签,认证中心用公钥进行验签;(公钥需要配置到认证中心后台-在平台详情出配置)
3.前端Vue工程介绍
3.1前端页面运行
# 进入项目目录
cd sso-auth-center-vue# 安装依赖
npm install# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org# 启动服务
npm run dev
浏览器访问 http://localhost:9528
3.2前端页面打包发布
# 构建测试环境
npm run build-test# 构建生产环境
npm run build-prod
3.3页面使用接入指南
1.更改公司名称
全局搜索 “小强认证中心” 替换为您的公司名称2.LOGO 替换
# src/assets/logo/logo.png 替换为您的logo文件 建议 400X4003.favicon 替换
# public/favicon.ico 替换该目录下文件即可4.默认头像(未设置头像下的默认图)src/image/profile.jpg
5.登录页背景图src/image/login-background.jpg
关注程序员小强公众号更多编程趣事,知识心得与您分享