2.3.0 • Published 2 years ago
@nueip/cross-token-access v2.3.0
SSO-自有系統前端 SSO 封裝(SDK) Ver 2.0
主要
dist/
├── cross-token-access.cjs.js (CommonJS)
├── cross-token-access.cjs.min.js (CommonJS, compressed)
├── cross-token-access.umd.js (UMD)
└── cross-token-access.umd.min.js (UMD, compressed)
依賴 & 注意事項
依賴:
- axios
- lodash
- js-cookie
- promise.prototype.finally
注意事項:
- 依賴套件已打包封裝,無需再外部引用
- API 採用 Axios 技術
- Axios 支援 finally,引用 promise.prototype.finally 方法
- Axios 攔截器 (interceptor) 有加入請求重複發送機制
跨域信任域名
nueip.com
nueip.site
使用說明
安裝
Script tag
<script src="your-path/cross-token-access.umd.min.js"></script>
npm
npm install @nueip/cross-token-access
用法
// 實體化
var tokenInjection = new TokenInjection(options);
- options
- Type:
Object
- 參考 options
- Type:
範例
請見範例
Options
autopilot
- Type:
Boolean
- Default:
true
- note: 是否自動初始化 & 刷新同步
sso_url
- Type:
String
- Default:
empty string
- note: SSO 伺服器 URL
cookie_prefix
- Type:
String
- Default:
empty string
- note: Cookie 自定義前綴字串
redirect_url
- Type:
String
- Default:
empty string
- note: 重新定向網址
xhr_with
- Type:
Boolean
- Default:
false
- note: 是否配置 X-Requested-With 抬頭
onLogout
- Type:
Function
- Default:
null
- note: 非登入狀態的回調函式
unauthorized
- Type:
Function
- Default:
null
- note: 401 未授權的 Callback
maxSyncTimesPerMinute
- Type:
number
- Default: 3
- note: 每分鐘同步 token 最大次數限制
maxRefreshTimesPerMinute
- Type:
number
- Default: 3
- note: 每分鐘刷新 token 最大次數限制
Methods
init()
- 初始化執行
- 自動同步/刷新 Token
- 自動登出倒數
sync()
return
- Promise 方法
執行一次,向 oAuth Server 同步 Token 資訊,同步錯誤時,檢查是否為登入狀態,否時刪除 Token
autoSync(interval)
- interval
- Type:
Number
- Note: 多少個間隔,每個間為 1000 毫秒
- Type:
- 定期執行,向 oAuth Server 同步 Token 資訊
- 執行條件
- Cookie 中 tkchecksum 是否與 LocalStorage 中的 token_checksum 不一樣
- Axios 未執行過或已執行完成
- 多視窗時有可能同時執行,待觀察
- 請求次數超過,自動登出
- 執行錯誤時關閉自動同步 3 秒後重啟
autoSyncStop()
- 停止自動同步 Token 內容
refresh()
- return
- Promise 方法
- throw
- 沒有 Refresh Token 時丟出
- 執行一次,向 oAuth Server 執行 Refresh Token
- 執行條件
- 必需有 refresh_token 金鑰:localStorage.token_refresh_token
- 當現在時間超過到期時間 - TokenRefreshBefore 時觸發更新 token
autoRefresh(interval)
- interval
- Type:
Number
- Note: 多少個間隔,每個間為 1000 毫秒
- Type:
- 定期執行,向 oAuth Server 同步 Token 資訊
- 執行條件
- 即將過期
- Axios 未執行過或已執行完成
- 多視窗時有可能同時執行,待觀察
- 請求次數超過,自動登出
- 執行錯誤時關閉自動同步 3 秒後重啟
autoRefreshStop
- 停止自動刷新 Token
getToken()
- return
- Type:
String
- Local Storage 中的 Token
- Type:
- 取得 Local Storage Token
getLang()
- return
- Type:
String
- Cookie 中的語系代號
- Type:
- 取得當前語系
validate(token)
驗證 Token
- token
- Type:
String
- 本地端要被驗證的 Token
- Type:
- return
- Promise 方法
loginIAM()
- 開啟 IAM 登入頁面,另開新視窗
- 轉導自動帶入GET參數 redirect_uri={指定重新定向網址}
logoutIAM()
- 開啟 IAM 登出頁面
isLogin()
- return
- Boolean
- 判斷是否為登入狀態
axiosCreate()
- config
- Type:
Object
- axios 請求參數
- 只支援 baseURL, withCredentials, timeout, headers
- Type:
- return
- Boolean
- axios 全域設定輸入接口
瀏覽器支援
Chrome (latest)
Firefox (latest)
Safari (latest)
Edge (latest)
Internet Explorer 11
2.3.0
2 years ago
2.2.1
2 years ago
2.2.0
2 years ago
2.2.3
2 years ago
2.2.2
2 years ago
2.1.9
3 years ago
2.1.10
3 years ago
2.1.6
3 years ago
2.1.5
3 years ago
2.1.8
3 years ago
2.1.7
3 years ago
2.1.2
3 years ago
2.1.4
3 years ago
2.1.3
3 years ago
2.1.1
3 years ago
2.1.0
3 years ago
2.0.5
4 years ago
2.0.11
3 years ago
2.0.7
3 years ago
2.0.6
4 years ago
2.0.9
3 years ago
2.0.10
3 years ago
2.0.8
3 years ago
2.0.3
4 years ago
2.0.0-alpha.3
4 years ago
2.0.2
4 years ago
2.0.0-alpha.4
4 years ago
2.0.4
4 years ago
2.0.0-alpha.1
4 years ago
2.0.0-alpha.2
4 years ago
2.0.1
4 years ago
2.0.0
4 years ago
1.0.0-RC10
4 years ago
1.0.0-RC9
4 years ago