1.0.0-rc.8 • Published 4 years ago
@nueip/cross-token-client v1.0.0-rc.8
SSO-自有系統前端 SSO 封裝(SDK) Ver 2.0
主要
dist/
└── token-injection-SDK.umd.min.js (UMD, compressed)
依賴 & 注意事項
依賴:
- axios
- lodash/isPlainObject
- lodash/assignIn
- lodash/forEach
- js-cookie
- promise.prototype.finally
注意事項:
- 依賴套件已打包封裝,無需再外部引用
- API 採用 Axios 技術
- Axios 支援 finally,引用 promise.prototype.finally 方法
使用說明
安裝
Script tag
<script src="your-path/token-injection-SDK.umd.min.js"></script>
npm
npm i @nueip/cross-token-client
用法
var tokenInjection = new TokenInjection(options);
- options
- Type:
Object
- 參考 options.
- Type:
範例
方法示例
// 實體化 TokenInjection
var tokenInjection = new TokenInjection({
SSO_URL: "Your sso server url",
COOKIE_DEFAULT_PREFIX: "Your cookie prefix",
});
/**
* 登入頁面
*/
function loginIAM() {
tokenInjection.loginIAM();
}
/**
* 登出頁面
*/
function logoutIAM() {
tokenInjection.logoutIAM();
}
/**
* 驗證 Token
*/
function validate() {
// 取得本地 local storage 的 token
var localToken = tokenInjection.getLocalStorageToken();
// 持此 token 進行驗證
tokenInjection
.validate(localToken)
.then(function (res) {
// 驗證成功
console.log("Success: " + res.data);
})
.catch(function (error) {
// 驗證失敗
console.log("Error: " + error);
})
.finally(function () {
console.log("Always executed");
});
}
/**
* 取得 Token
*
* @param ScheduleEvent - flag, 是否開啟同步
*/
function tokenSync(ScheduleEvent = 1) {
// 取得Token資料
if (ScheduleEvent == null) {
// 開啟自動同步
ScheduleEvent = 1;
tokenInjection.autoSync();
console.log("tokenSync On");
} else {
// 關閉自動同步
ScheduleEvent = null;
tokenInjection.autoSyncStop();
console.log("tokenSync Off");
}
}
/**
* 更新 Token
*/
function refresh() {
try {
// 更新Token資料
tokenInjection.refresh();
} catch (e) {
console.log("[" + e.code + "] " + e.message);
}
}
Options
SSO_URL
- Type:
String
- Default:
null
- note: SSO 伺服器 URL
COOKIE_DEFAULT_PREFIX
- Type:
String
- Default:
null
- note: Cookie 自定義前綴字串
Methods
sync()
- return
- Promise 方法
autoSync(interval)
- interval
- Type:
Number
- Note: 多少個間隔,每個間為 500 毫秒
- Type:
- 定期執行,向 oAuth Server 同步 Token 資訊
autoSyncStop()
- 停止自動同步 Token 內容
refresh()
- return
- Promise 方法
- throw
- 沒有 Refresh Token 時丟出
- 執行一次,向 oAuth Server 執行 Refresh Token
autoRefresh(interval)
- interval
- Type:
Number
- Note: 多少個間隔,每個間為 500 毫秒
- Type:
- 定期執行,向 oAuth Server 同步 Token 資訊
autoRefreshStop
- 停止自動刷新 Token
getLocalStorageToken()
- return
- Type:
String
- Local Storage 中的 Token
- Type:
- 取得 Local Storage Token
validate(token)
驗證 Token
- token
- Type:
String
- 本地端要被驗證的 Token
- Type:
- return
- Promise 方法
loginIAM()
- 開啟 IAM 登入頁面,另開新視窗
logoutIAM()
- 開啟 IAM 登出頁面
瀏覽器支援
Chrome (latest)
Firefox (latest)
Safari (latest)
Edge (latest)
Internet Explorer 11
1.0.0-rc.7
4 years ago
1.0.0-rc.8
4 years ago
1.0.0-rc.5
4 years ago
1.0.0-rc.6
4 years ago
1.0.0-rc.4
4 years ago
1.0.0-rc.3
4 years ago
1.0.0-rc.2
4 years ago
1.0.0-rc.1
4 years ago
0.1.4
4 years ago
0.1.3
4 years ago
0.1.2
4 years ago
0.1.1
4 years ago
0.1.0
4 years ago
1.0.0
4 years ago