//Url中的換行僅為了提高可讀性,實際代碼中應去掉。
<script src="https://sso.foxconn.com/lib/jquery/dist/jquery.min.js"></script>
<script src="https://sso.foxconn.com/Civet/JsLogin?
client_id=[您的client_id]&
redirect_uri=[跳轉地址]&
scope=[Scope,至少包含:openid]&
state=[可為空]
"></script>
<script>
var hsso_options = {
scanPrompt: "相信掃一掃快速登錄",
imgSize: 145,
imgMarginTop: 10,
imgMarginBottom: 20,
linkCommonLogin: true
};
var hsso = new BelieveSSO("#div1", hsso_options);
</script>
此功能必須引用jQuery 1.7版本或以上。
JS主要方法為: new BelieveSSO(selector, options);
selector
DOM對像選擇字符串,用來指定顯示二維碼容器。
options
配置參數,可以為空。json對像,可包含下列值,且均可以為空。
scanPrompt
提示用戶掃碼,默認值為“請使用相信「掃一掃」功能”。
refershPrompt
刷新二維碼提示,默認值為“點擊刷新二維碼”。
s0Prompt
用戶已掃碼的提示,默認值為“請在相信手機端確認登錄操作”。
s1Prompt
相信手機端操作已完成時的提示,默認值為“中央授權中心正在登錄”。
imgSize
二維碼圖片寬度,單位px,默認值為180。
imgMarginTop
二維碼圖片上端空白高度,單位px,默認值為30。
imgMarginBottom
二維碼圖片下端空白高度,單位px,默認值為30。
useDefaultCsss
是否加載默認CSS樣式,默認值為 true。
linkCommonLogin
是否鏈接通用登錄方式,默認值為 false。
commonLoginLabel
通用登錄方式鏈接顯示的文字,默認為“其它登錄方式”。
BelieveSSO
對像方法getLoginInfo
獲得中央授權中心當前登錄的用戶信息,若有登錄信息直接跳至授權端點自動授權。使用此方法可解決Js掃碼需用戶重復掃碼問題。
此getLoginInfo方法使用了Cookie跨域讀取,目前在較寬鬆的安全策略下支持此功能。隨著各大瀏覽器的安全升級之后此功能可能無法使用。
【Google Chrome】为停用第三方 Cookie 做好准备
【Microsoft Edge】如何在浏览器中处理第三方 Cookie 阻止
【中央授權中心討論議題】標準地址的意義以及window.open方法是否可用?
<script>
... //接上段代碼
hsso.getLoginInfo(function(data){
//data 數據格式如下
//{loggedIn: true, username: 'X000001', amr: ['qrcode', 'totp']}
....
});
</script>
效果如下
HTML結構如下,您可以通過定義class來實現自定義樣式
<div class="sso-qrcode"> <div class="qrcode"> <img class="qr-img" src="{系統二維碼}" id="login-qrcode-image"> <div id="qrcode-timeout" style="display: none;"> <div class="refresh"></div> <label>{刷新提示}</label> </div> </div> <label id="scan-info"> {掃碼及狀態提示} </label> <a href="{對應OIDC鏈接}" id="scan-link-common-login">{其它登錄方式}</a> </div>