1.0.0-rc.8 • Published 4 years ago

@nueip/cross-token-client v1.0.0-rc.8

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

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);

範例

方法示例

// 實體化 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 毫秒
  • 定期執行,向 oAuth Server 同步 Token 資訊

autoSyncStop()

  • 停止自動同步 Token 內容

refresh()

  • return
    • Promise 方法
  • throw
    • 沒有 Refresh Token 時丟出
  • 執行一次,向 oAuth Server 執行 Refresh Token

autoRefresh(interval)

  • interval
    • Type: Number
    • Note: 多少個間隔,每個間為 500 毫秒
  • 定期執行,向 oAuth Server 同步 Token 資訊

autoRefreshStop

  • 停止自動刷新 Token

getLocalStorageToken()

  • return
    • Type: String
    • Local Storage 中的 Token
  • 取得 Local Storage Token

validate(token)

驗證 Token

  • token
    • Type: String
    • 本地端要被驗證的 Token
  • 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