基於SpringBoot的單點登入系統dp-PASSPORT

技術小能手發表於2018-09-28

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依賴
    <dependency>
        <groupId>net.chenlin</groupId>
        <artifactId>dp-passport-client</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  1. 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 您已被強制退出

本文來自雲棲社群合作伙伴“開源中國”

本文作者:王練

原文連結


相關文章