一、定义

SSO允许用户使用一组凭据(如用户名和密码)登录多个相互关联的应用程序或系统,而不需要在每个应用程序或系统中重新输入凭据。用户只需通过一次身份认证,就可以获得访问多个应用程序或系统的授权。

二、原理

SSO的实现原理通常涉及以下几个关键步骤:

  1. 用户登录:用户首次访问某个应用程序时,会被引导到认证系统中进行登录。认证系统验证用户的身份后,会生成一个认证凭据(如Token或ticket),并返回给用户。
  2. 存储认证凭据:认证凭据通常会被存储在用户的浏览器中,例如通过cookie或localStorage。这样,用户在后续访问其他应用程序时,浏览器会自动携带这个认证凭据。
  3. 验证认证凭据:当用户访问其他应用程序时,这些应用程序会检查用户是否携带了有效的认证凭据。如果认证凭据存在且未过期,应用程序会使用认证凭据从认证系统中获取用户的身份信息,并授权用户访问应用程序。
  4. 注销与会话管理:当用户注销或会话过期时,相关的应用程序和认证系统都会清除用户的认证凭据,以确保用户身份的安全性。

三、优点

  1. 提高用户体验:用户只需登录一次,就可以访问多个应用程序,减少了重复登录的麻烦,提高了用户体验。
  2. 提高安全性:SSO使用统一的身份验证机制,可以减少用户使用弱密码或重复密码的可能性,同时便于实施强密码策略和多因素身份验证等措施,从而提高安全性。
  3. 简化管理:SSO允许集中管理用户身份和访问权限,简化了用户账户的管理工作。

四、安装

安装包中的源代码总共分为三个部分,后台后端代码、后台前端代码、及数据库文件。安装步骤如下:

  1. 安装前提为您已经在本地部署了gfastv3 的程序并能够正常运行。
  2. 将前端及后端代码分别覆盖至您的前端及后端的项目的根目录下,模块文件并没有修改任何框架的代码, 因此并不会覆盖到您的已有代码。
  3. 运行sql文件夹下“新增的表.sql”及“后台菜单.sql”添加数据库表及菜单。
    后台菜单.sql需要将文件内容复制到mysql命令行运行,不可直接导入。
  4. 后台的前端及后端代码均无新增依赖,因此无需执行安装依赖的操作,到此为止安装完成。
    系统无第三方依赖,安装完成直接运行即可

五、使用配置

单点登陆应用分为服务端和客户端,服务端是为其他应用提供登陆用户信息的服务,客户端是调用其他服务的用户信息。
目前客户端已支持:giteegithubGFast单点登陆接口功能,后续可扩展其他应用接口。

1、接入gitee示例

  1. 登陆gitee官网,点击个人头像进入设置,点击第三方应用,创建一个应用:
    image.png

  2. 填写应用相关信息
    image.png
    注意:应用主页和回调地址根据自己网站实际访问地址填写,填写完毕保持后再次进入应用可以查看到对应的应用ID和密钥(clientID与Client Secret)
    后续如果需要获取用户邮箱信息,权限这里需要勾上:
    image.png

  3. gfast后台配置单点登陆的客户端信息
    image.png
    注意应用ID和密钥填写gitee给定的clientIDClient Secretgitee支持refresh_token(刷新令牌)所以需要填写刷新token地址。

2、接入github示例

  1. 登陆github网站后进入settings=>developers=>Oauth Apps创建一个应用:
    image.png
  2. Gfast后台配置github登陆的客户端信息:
    image.png

3、多个gfast站点间单点登陆配置

  1. 用户信息端配置一个单点登陆服务
    image.png
    添加完成后得到应用ID和密钥
    image.png

  2. 添加客户端配置信息
    image.png

配置完成后可在演示登陆页面测试

image.png

image.png

image.png

image.png

image.png

image.png

image.png

3、微信扫码登录

微信开放平台注册账号,添加网站应用,如下图:

开发配置中,配置回调域名

前往后台添加对应微信授权服务器配置

引导认证页地址https://open.weixin.qq.com/connect/qrconnect
回调地址:http://回调域名/api/v1/sso/client/login/callback/wechat/aHR0cDovL2xvY2FsaG9zdDo4ODg4LyMvc3NvL2NsaWVudC9zc29BdXRoU2VydmVyL2RlbW8=其中这一串aHR0cDovL2xvY2FsaG9zdDo4ODg4LyMvc3NvL2NsaWVudC9zc29BdXRoU2VydmVyL2RlbW8=为你的前端页面展示地址base64编码如此处为http://localhost:8888/#/sso/client/ssoAuthServer/demo 下图页面:

点击微信图标登录 进入授权页面:

扫码登录后即可获取微信用户信息:

作者:管理员  创建时间:2025-06-13 17:24
最后编辑:管理员  更新时间:2025-12-11 11:14