# dp-PASSPORT **Repository Path**: csMyProject/dp-passport ## Basic Information - **Project Name**: dp-PASSPORT - **Description**: 基于SpringBoot的单点登录系统,同时支持web和app不同类型终端登录,并可在不同类型终端灵活切换,统一配置,业务系统无侵入接入,只需要增加passport依赖和配置项即可,客户端支持接入系统登出,登录状态校验(web端支持跨域);代码注释完整,分层规范,100%通过阿里巴巴代码检测,便于二次开发。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 188 - **Created**: 2018-09-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dp-PASSPORT #### 项目介绍 基于SpringBoot的单点登录系统,同时支持web和app不同类型终端登录,并可在不同类型终端灵活切换,统一配置;业务系统无侵入接入,只需要增加passport依赖和配置项即可;客户端支持接入系统登出,登录状态校验(web端支持跨域);代码注释完整,分层规范,100%通过阿里巴巴代码检测,便于二次开发。 #### 项目结构 1. dp-passport:聚合工程 2. dp-passport-common:公用基础模块 3. dp-passport-server:认证服务模块 4. dp-passport-client:客户端模块 5. dp-passport-samples:基础示例 #### 单点登录接入方法 1. maven依赖 ``` net.chenlin dp-passport-client 0.0.1-SNAPSHOT ``` 2. application.yml配置(配置项说明见 客户端配置 ) ``` ids: client: client-type: web app-code: passportTest auth-id-cookie-name: dpAuthId server-name: http://samplesit.chenlintech.com:9090/sample auth-server-url: http://passportsit.chenlintech.com:8080/ids cookie-comain: chenlintech.com ``` #### 客户端功能 1. 登出 - web端:[server-name]/logout,重定向server登出地址 - app端:[server-name]/logout,参数[auth-id-cookie-name]包含在header或param中 2. 校验登录状态 - web端:[server-name]/authStatus,返回jsonp - app端:[server-name]/authStatus,参数[auth-id-cookie-name]包含在header或param中 #### 使用说明 1. 开发环境:jdk,maven,mysql,redis,idea,jmeter 2. 修改host - 127.0.0.1 passportsit.chenlintech.com - 127.0.0.1 samplesit.chenlintech.com 3. 数据库脚本见doc目录[dp-emp.sql],用户表只是示例,可根据需要二次开发 4. 接口测试脚本见doc目录[passport登录测试计划.jmx] 5. passport默认登录用户:admin,密码:1 #### 服务端配置 1. auth-id-cookie-name:授权码名称,cookie名称或token名称 2. welcome-page:欢迎页面,当登陆后重定向地址为空时,跳转该地址 3. cookie-domain:cookie域,顶级域名 4. redis-host-and-port:redis地址,格式为 127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381 #### 客户端配置 1. client-type:客户端类型,配置为web或app,默认缺省为web 2. app-code:接入应用标识,必填 3. auth-id-cookie-name:授权码名称,cookie名称或token名称,与服务端一致 4. server-name:接入系统首页,客户端为app时可不配置 5. auth-server-url:认证服务器地址,必填 6. cookie-domain:cookie域,web端顶级域名,客户端为app时可不配置 #### SessionData:登陆后,从request获取sessionData属性 1. userId:用户id,获取用户唯一标识 2. userAlias:用户登录名 3. isLogin:是否登录:1:登录状态,0:未登录,预留强制退出字段 4. userEnable:用户可用状态:1:正常,0:禁用 5. rememberMe:是否记住我,true保留登录7天,false默认30分钟 6. loginType:登录类型:1:web端,2:app端 #### 错误码定义 | 错误码 | 提示信息 | | :------: | :------ | | 0000 | 处理成功 | | 1000 | 业务异常 | | 9999 | 系统异常 | | 4000 | 账户已登录 | | 4001 | 账户未登录 | | 4002 | 用户名不能为空 | | 4003 | 密码不能为空 | | 4004 | 当前用户不存在 | | 4005 | 密码错误 | | 4006 | 账户已被锁定 | | 4007 | 您已被强制退出 |