首页 > 编程知识 正文

小强erp旅行社系统,小强证书认证平台

时间:2023-05-03 08:59:32 阅读:225999 作者:3399

前言

在前文章中介绍了,认证中心以及工程项目介绍。

相关文章

统一认证中心简介认证中心-项目工程介绍

本文主要讲解如何部署起来。首先简单的本地部署来-模拟使用认证中心统一认证。

文中附录示例工程源码地址

先上个先行图,登录了认证中心就相当于登录了所有。

下图是先登录认证中心后-跳转到目标系统(也可以直接访问子系统-详见下文)
注意:链接中携带了token

1.环境准备 统一认证中心服务( www.myauth.com)子系统1(www.sysclient1.com)子系统2(www.sysclient2.com)

由于是Demo实例,这里若有要访问-需要修改一下本机host,添加如下映射

127.0.0.1 www.myauth.com127.0.0.1 www.sysclient1.com127.0.0.1 www.sysclient2.com

注:统一认证中心对接的目标平台可以与其不是在同一个主域名下。这里用本机域名演示一下。

2.认证中心服务 2.1数据库导入

传送门

2.2后台服务 2.2.1源码地址

源码传送门

相关属性:

系统编码 auth后台服务启动端口:9901vue前台项目启动端口:9528 2.2.2配置修改

修改配置文件 config/目录下配置文件 application-dev.properties

配置数据源(以spring.datasource.前缀的相关配置)配置redis (以spring.redis.前缀的相关配置)sys.config.ssoLoginUrl 配置认证中心的登录地址,示例 :http://www.myauth.com:9528/login其它以sys.config.为前缀的配置,可选 ,默认的话可不编辑 注意:认证中心编码配置 与sso_system表 sys_code 认证中心编码保持一致,sys.config.authSsoSysCode=auth,超级管理员用户(用户ID|用户名),与导入的表数据一致,默认可不修,不建议修改。sys.config.supperAdminUser=1000|admin

配置完成可启动,
Springboot 项目 启动类 com.sso.AuthCenterAdminApplication

打包启动示例

cd sso-auth-center-service#打包mvn package -DskipTests=true#切换到目录下cd sso-auth-center-admin/target#执行启动java -jar sso-auth-center.jar 2.3前台页面 # 进入项目目录cd sso-auth-center-vue# 安装依赖npm install# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题npm install --registry=https://registry.npm.taobao.org# 启动服务npm run dev

浏览器访问 http://localhost:9528

打包发布

# 构建测试环境npm run build-test# 构建生产环境npm run build-prod 2.4默认管理员账号

admin/123456

可登录后在个人中心处修改

2.5打包部署与Nginx配置示例

1.后台服务打包发布

2.前端服务打包

# 构建生产环境npm run build-prod

打包后会生成dist文件夹,将该文件放置到服务器对应位置

Nginx 配置示例

http { include /usr/local/nginx/conf/mime.types; # 需要改为您的mime.types文件具体位置 default_type application/octet-stream; sendfile on; # 开启高效传输模式 keepalive_timeout 65; # 保持连接的时间,也叫超时时间,单位秒 charset utf-8; # 设置编码格式 access_log /var/log/nginx/auth-center.log; server { listen 443 ssl; # 端口号 server_name www.xxxxx; # 您的域名 ssl_certificate /home/devjava/ssl_certificate/4012616_xxxx.top.pem; #填写你的证书所在的位置 ssl_certificate_key /home/devjava/ssl_certificate/4012616_xxx.top.key; #填写你的key所在的位置 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #套件配置 ssl_prefer_server_ciphers on; location = / { index index.html; } # 前端项目 location / { root /home/devjava/auth-center/sso-auth-center-vue; try_files $uri $uri/ /index.html last; index index.html; add_header Cache-Control "no-cache, no-store"; add_header Pragma no-cache; } # 后台服务 location /api/ { proxy_pass http://127.0.0.1:9901; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ^~ /static/ { root /home/devjava/auth-center/sso-auth-center-vue; expires max; } }} 3.子系统示例1 3.1源码地址

源码传送门

相关属性:

系统编码 sys-client01启动端口:8801验签方式MD5

这里的子系统,没有使用前后分离,使用SpringBoot + templates 搭建的简易工程。
主要实现功能是

一个拦截器,拦截所有请求。拦截器内判断是否已经存在局部管缓存,若不存在则请求认证中心认证。 3.2重点配置 #系统编码sys.config.mySysCode=sys-client01#MD5签名秘钥(与认证中心-平台详情-添加的秘钥一致)sys.config.ssoAuthSecret=1234567890#认证中心登录地址sys.config.ssoAuthLoginUrl=http://www.myauth.com:9528/login#当前客户端web地址sys.config.clientWebUrl=http://www.sysclient1.com:8801#本系统退出登录urlsys.config.myLoginOutUrl=http://www.sysclient1.com:8801/logOutBySsoAuth#认证中心开放接口地址sys.config.ssoAuthGetWayUrl=http://localhost:9901/api/open/gateway 3.3核心拦截器

综上,其实就是SSO登录子系统该做的事情。

3.4有图有真相

下图是直接访问子系统1

前提未登录认证中心直接输入子系统1地址访问由于未登录-跳转到认证中心登录登录后重定向到了目标系统

认证中心返回的用户信息+菜单权限信息
注:演示项目这里没做特殊处理,就直接以JSON格式展示出来了。

4.子系统示例2 4.1源码地址

源码传送门

相关属性:

系统编码 sys-client02启动端口:8802验签方式RSA

与子系统一代码基本一致,只是签名方式不一致,端口不一致,本示例采用的是RSA加签,推荐使用。

4.2有图有真相

由于系统一已经登录,
所以在访问子系统2的时候,无需再次登录。从下图看到,token也是同一个。

5.建议与优化

以下为若需要部署到生成环境建议优化的地方。

5.1关于跳转到子系统链接中携带Token 上述Demo中系统的token是第一次认证的时候认证中心返回的在URL拼接了参数,建议子系统存到cookie后,重跳转一次,去掉链接中的token参数,由于上述Demo为了演示方便,所以没有这么做。生产环境建议隐藏。 5.2关于图片存储(有默认图-不影响使用)

由于为了简化开源项目中的组件,将用户头像上传或者系统平台的图标上传,存储到了本地。

头像上传接口(com.sso.controller.admin.UserProfileController#avatar)系统图标上传接口(com.sso.controller.admin.SystemController#uploadIcon)

建议改成单独的图片服务,或者第三方例如OSS

关注程序员呆萌的母鸡公众号更多编程趣事,知识心得与您分享

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。