場景
keycloak出現(xiàn)"用戶已登錄"的界面的場景我們需要先搞清楚袁稽,主要是這樣的操作:
用戶打開一個瀏覽器,在上面同時打開多個登錄窗口
用戶先在一個窗口上進(jìn)行登錄
用戶再第二個窗口上再進(jìn)行登錄
這時,出現(xiàn)用戶已經(jīng)登錄,事實上,在kc上息尺,如果你已經(jīng)登錄了,則不能再使用其它用戶登錄了
原因
同一個瀏覽器在同一個kc realm下疾掰,它的sessionid是相同的搂誉,所以被認(rèn)為一個用戶,不支持多個用戶的sessionid
多用戶登錄改進(jìn)
如果希望kc支持在一個用戶登錄后静檬,再刷新第二個界面的登錄頁炭懊,再使用第二個用戶才能登錄。
單用戶不出現(xiàn)用戶已登錄
前端ftl模板添加session狀態(tài)檢查
如果cookie中存的sessionid已經(jīng)登錄拂檩,而進(jìn)行redirect_uri
如果沒有登錄侮腹,再走正常的登錄邏輯
前端登錄代碼
function confirmSession(callback) {
$.get("/auth/realms/your-realms/session-exist", function (o) {
console.log(o);
if (o.exist) {
location.href = getQueryVariable("redirect_uri");
} else {
callback();
}
});
}
function login_f() {
confirmSession(function () {
document.getElementById("kc-form-login").submit();
})
}
愿與諸君共進(jìn)步,大量的面試題及答案還有資深架構(gòu)師錄制的視頻錄像:有Spring稻励,MyBatis父阻,Netty源碼分析,高并發(fā)望抽、高性能加矛、分布式、微服務(wù)架構(gòu)的原理煤篙,JVM性能優(yōu)化斟览、分布式架構(gòu)等這些成為架構(gòu)師必備的知識體系,可以微信搜索539413949獲取辑奈,最后祝大家都能拿到自己心儀的offer