mirror of
https://github.com/ZeroCatDev/ClassworksKV.git
synced 2025-10-22 10:23:12 +00:00
79 lines
2.7 KiB
JavaScript
79 lines
2.7 KiB
JavaScript
// OAuth 提供者配置
|
||
export const oauthProviders = {
|
||
github: {
|
||
clientId: process.env.GITHUB_CLIENT_ID,
|
||
clientSecret: process.env.GITHUB_CLIENT_SECRET,
|
||
authorizationURL: "https://github.com/login/oauth/authorize",
|
||
tokenURL: "https://github.com/login/oauth/access_token",
|
||
userInfoURL: "https://api.github.com/user",
|
||
scope: "read:user user:email",
|
||
// 展示相关
|
||
name: "GitHub",
|
||
displayName: "GitHub",
|
||
icon: "github",
|
||
color: "#24292e", // 兼容旧字段
|
||
description: "使用 GitHub 账号登录",
|
||
},
|
||
zerocat: {
|
||
clientId: process.env.ZEROCAT_CLIENT_ID,
|
||
clientSecret: process.env.ZEROCAT_CLIENT_SECRET,
|
||
authorizationURL: "https://zerocat-api.houlangs.com/oauth/authorize",
|
||
tokenURL: "https://zerocat-api.houlangs.com/oauth/token",
|
||
userInfoURL: "https://zerocat-api.houlangs.com/oauth/userinfo",
|
||
scope: "user:basic user:email",
|
||
// 展示相关
|
||
name: "ZeroCat",
|
||
displayName: "ZeroCat",
|
||
icon: "zerocat",
|
||
color: "#6366f1",
|
||
description: "使用 ZeroCat 账号登录",
|
||
},
|
||
stcn: {
|
||
// STCN(Casdoor)- 标准 OIDC Provider
|
||
clientId: process.env.STCN_CLIENT_ID,
|
||
clientSecret: process.env.STCN_CLIENT_SECRET,
|
||
// Casdoor 标准端点
|
||
authorizationURL: "https://auth.smart-teach.cn/login/oauth/authorize",
|
||
tokenURL: "https://auth.smart-teach.cn/api/login/oauth/access_token",
|
||
userInfoURL: "https://auth.smart-teach.cn/api/userinfo",
|
||
scope: "openid profile email offline_access",
|
||
// 展示相关
|
||
name: "stcn",
|
||
displayName: "智教联盟账户",
|
||
icon: "casdoor",
|
||
color: "#1f6feb",
|
||
description: "使用智教联盟账户登录",
|
||
tokenRequestFormat: "json", // Casdoor 推荐 JSON 提交
|
||
},
|
||
hly: {
|
||
// 厚浪云(Logto) - OIDC Provider
|
||
clientId: process.env.HLY_CLIENT_ID,
|
||
clientSecret: process.env.HLY_CLIENT_SECRET, // 可选:若使用PKCE且应用为Public,可不配置
|
||
authorizationURL: "https://oauth.houlang.cloud/oidc/auth",
|
||
tokenURL: "https://oauth.houlang.cloud/oidc/token",
|
||
userInfoURL: "https://oauth.houlang.cloud/oidc/me",
|
||
scope: "openid profile email offline_access",
|
||
// 展示相关
|
||
name: "厚浪云",
|
||
displayName: "厚浪云",
|
||
icon: "logto",
|
||
color: "#0ea5e9",
|
||
brandColor: "#0ea5e9",
|
||
textColor: "#ffffff",
|
||
order: 40,
|
||
description: "使用厚浪云账号登录",
|
||
pkce: true, // 启用PKCE支持
|
||
},
|
||
};
|
||
|
||
// 获取OAuth回调URL
|
||
export function getCallbackURL(provider) {
|
||
const baseUrl = process.env.BASE_URL;
|
||
return `${baseUrl}/accounts/oauth/${provider}/callback`;
|
||
}
|
||
|
||
// 生成随机state参数
|
||
export function generateState() {
|
||
return Math.random().toString(36).substring(2, 15) +
|
||
Math.random().toString(36).substring(2, 15);
|
||
} |