modify Login UI for OIDC login

This commit is contained in:
Tao Chen
2024-10-31 08:57:31 +08:00
parent 40a2d889ed
commit c165f54ce8
6 changed files with 338 additions and 78 deletions
+30
View File
@@ -1,4 +1,6 @@
const TokenKey = 'access_token'
const OidcCode = 'oidc_code'
const OidcCodeExpiry = 'oidc_code_expiry';
export function getToken () {
return localStorage.getItem(TokenKey)
@@ -11,3 +13,31 @@ export function setToken (token) {
export function removeToken () {
return localStorage.removeItem(TokenKey)
}
// 设置 code,并存储当前时间戳(单位:毫秒)
export function setCode(code) {
const now = Date.now(); // 当前时间戳(毫秒)
const expiry = now + 30 * 1000; // 30 秒后过期
localStorage.setItem(OidcCode, code); // 存储 code
localStorage.setItem(OidcCodeExpiry, expiry); // 存储过期时间戳
}
// 获取 code,如果已过期则删除并返回 null
export function getCode() {
const expiry = localStorage.getItem(OidcCodeExpiry); // 获取过期时间戳
const now = Date.now(); // 当前时间戳
if (expiry && now > parseInt(expiry)) {
// 如果已过期,删除 code 和过期时间
removeCode();
return null;
}
return localStorage.getItem(OidcCode); // 返回 code(如果未过期)
}
// 删除 code 和过期时间
export function removeCode() {
localStorage.removeItem(OidcCode);
localStorage.removeItem(OidcCodeExpiry);
}
+4
View File
@@ -427,5 +427,9 @@
},
"LastOnlineIp": {
"One": "最后在线IP"
},
"or login in with" :
{
"One": "或使用以下登陆"
}
}
+6
View File
@@ -55,6 +55,12 @@ service.interceptors.response.use(
response => {
const res = response.data
// for the endpoint /login-options
// I'm not sure if this is a good idea
if (Array.isArray(res)) {
return res;
}
// if the custom code is not 20000, it is judged as an error.
if (res.code !== 0) {
ElMessage({