基於SpringBoot的單點登入系統dp-PASSPORT
dp-PASSPORT
專案介紹
基於SpringBoot的單點登入系統,同時支援web和app不同型別終端登入,並可在不同型別終端靈活切換,統一配置;業務系統無侵入接入,只需要增加passport依賴和配置項即可;客戶端支援接入系統登出,登入狀態校驗(web端支援跨域);程式碼註釋完整,分層規範,100%通過阿里巴巴程式碼檢測,便於二次開發。
專案結構
- dp-passport:聚合工程
- dp-passport-common:公用基礎模組
- dp-passport-server:認證服務模組
- dp-passport-client:客戶端模組
- dp-passport-samples:基礎示例
單點登入接入方法
-
maven依賴
<dependency> <groupId>net.chenlin</groupId> <artifactId>dp-passport-client</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
-
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
客戶端功能
-
登出
- web端:[server-name]/logout,重定向server登出地址
- app端:[server-name]/logout,引數[auth-id-cookie-name]包含在header或param中
-
校驗登入狀態
- web端:[server-name]/authStatus,返回jsonp
- app端:[server-name]/authStatus,引數[auth-id-cookie-name]包含在header或param中
使用說明
- 開發環境:jdk,maven,mysql,redis,idea,jmeter
-
修改host
- 127.0.0.1 passportsit.chenlintech.com
- 127.0.0.1 samplesit.chenlintech.com
- 資料庫指令碼見doc目錄[dp-emp.sql],使用者表只是示例,可根據需要二次開發
- 介面測試指令碼見doc目錄[passport登入測試計劃.jmx]
- passport預設登入使用者:admin,密碼:1
服務端配置
- auth-id-cookie-name:授權碼名稱,cookie名稱或token名稱
- welcome-page:歡迎頁面,當登陸後重定向地址為空時,跳轉該地址
- cookie-domain:cookie域,頂級域名
- redis-host-and-port:redis地址,格式為 127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381
客戶端配置
- client-type:客戶端型別,配置為web或app,預設預設為web
- app-code:接入應用標識,必填
- auth-id-cookie-name:授權碼名稱,cookie名稱或token名稱,與服務端一致
- server-name:接入系統首頁,客戶端為app時可不配置
- auth-server-url:認證伺服器地址,必填
- cookie-domain:cookie域,web端頂級域名,客戶端為app時可不配置
SessionData:登陸後,從request獲取sessionData屬性
- userId:使用者id,獲取使用者唯一標識
- userAlias:使用者登入名
- isLogin:是否登入:1:登入狀態,0:未登入,預留強制退出欄位
- userEnable:使用者可用狀態:1:正常,0:禁用
- rememberMe:是否記住我,true保留登入7天,false預設30分鐘
- loginType:登入型別:1:web端,2:app端
錯誤碼定義
錯誤碼 | 提示資訊 |
---|---|
0000 | 處理成功 |
1000 | 業務異常 |
9999 | 系統異常 |
4000 | 賬戶已登入 |
4001 | 賬戶未登入 |
4002 | 使用者名稱不能為空 |
4003 | 密碼不能為空 |
4004 | 當前使用者不存在 |
4005 | 密碼錯誤 |
4006 | 賬戶已被鎖定 |
4007 | 您已被強制退出 |
本文來自雲棲社群合作伙伴“開源中國”
本文作者:王練
相關文章
- 跨域分散式系統單點登入的實現(CAS單點登入)跨域分散式
- 如何基於 Security 實現 OIDC 單點登入?
- 如何基於Security實現OIDC單點登入?
- 純基於PHP的單點登陸PHP
- Laravel 通過 cookie 實現基於 session 的單點登入LaravelCookieSession
- 手把手教你學會 基於JWT的單點登入JWT
- 【實踐篇】基於CAS的單點登入實踐之路
- CAS單點登入-基礎搭建
- 關於一級域名相同的兩個系統單點登入問題
- 前端關於單點登入的知識前端
- Ubuntu部署Maxkey單點登入認證系統Ubuntu
- 基於SpringBoot 的CMS系統Spring Boot
- 基於Spring Cloud 幾行配置完成單點登入開發SpringCloud
- 單點登入原理
- 如何自己實現一個健壯的 SSO 單點登入系統
- 在單點登入的實現時,怎樣能把單點登入的帳號和其它應用系統的帳號繫結呢?
- 手把手教你學會 基於Spring-Boot,JWT的單點登入SpringbootJWT
- jmeter 對於其他地址單點登入跳轉到測試系統的 token 要如何獲取JMeter
- 基於C#的簡單登入窗體設計C#
- 基於IdentityServer4的OIDC實現單點登入(SSO)原理簡析IDEServer
- 初探單點登入 SSO
- java實現簡單的單點登入Java
- 關於單點登入的若干問題,請高手指教
- 用j2ee如何實現applet系統的單點登入APP
- 基於Token認證的多點登入和WebApi保護WebAPI
- 基於CAS的WEB單點登入(sso)服務端及其tomcat/nginx https配置Web服務端TomcatNginxHTTP
- 基於Confluence6資料中心的SAML單點登入設定SSL/TLSTLS
- CAS單點登入-簡介
- SSO單點登入邏輯
- 單點登入 SSO 的實現原理
- 基於websocket的簡單廣播系統Web
- 絕對完全跨域統一單點登入登出跨域
- 單點登入系統原理與實現,圖文並茂,附原始碼原始碼
- 基於Spring Security Oauth2的SSO單點登入+JWT許可權控制實踐SpringOAuthJWT
- smdms超市訂單管理系統之登入功能
- 基於SpringBoot的後臺管理系統(Apache Shiro,Spring Session(重點))(五)Spring BootApacheSession
- 基於React和Antdesign的登入React
- 基於mtcnn/facenet/tensorflow實現人臉識別登入系統CNN