perf: 支持OIDC单点登录

This commit is contained in:
xiaojunnuo
2025-12-01 00:40:46 +08:00
parent 22a5f34e1f
commit fbf12f16b5
18 changed files with 371 additions and 153 deletions
@@ -43,7 +43,15 @@ export type BuildLoginUrlReq = {
from?:string;
}
export type BuildLogoutUrlReq = {
}
export type LogoutUrlReply = {
logoutUrl?: string;
}
export interface IOauthProvider {
buildLoginUrl: (params: BuildLoginUrlReq) => Promise<LoginUrlReply>;
onCallback: (params: OnCallbackReq) => Promise<OauthToken>;
buildLogoutUrl: (params: BuildLogoutUrlReq) => Promise<LogoutUrlReply>;
}
@@ -1,5 +1,5 @@
import { AddonInput, BaseAddon, IsAddon } from "@certd/lib-server";
import { BuildLoginUrlReq, IOauthProvider, OnCallbackReq } from "../api.js";
import { BuildLoginUrlReq, BuildLogoutUrlReq, IOauthProvider, OnCallbackReq } from "../api.js";
@IsAddon({
addonType: "oauth",
@@ -129,4 +129,12 @@ export class OidcOauthProvider extends BaseAddon implements IOauthProvider {
},
}
};
async buildLogoutUrl(params: BuildLogoutUrlReq) {
const { config } = await this.getClient()
let logoutUrl = config.serverMetadata().end_session_endpoint
return {
logoutUrl: logoutUrl,
};
}
}
@@ -1,5 +1,5 @@
import { AddonInput, BaseAddon, IsAddon } from "@certd/lib-server";
import { BuildLoginUrlReq, IOauthProvider, OnCallbackReq } from "../api.js";
import { BuildLoginUrlReq, BuildLogoutUrlReq, IOauthProvider, OnCallbackReq } from "../api.js";
@IsAddon({
addonType: "oauth",
@@ -125,4 +125,9 @@ export class WxOauthProvider extends BaseAddon implements IOauthProvider {
},
}
};
async buildLogoutUrl(params: BuildLogoutUrlReq) {
return {};
}
}