refactor: Simplify Q58 OAuth callback authorization logic

This commit is contained in:
wood chen 2025-02-23 02:23:56 +08:00
parent c78b2141aa
commit 569ba4c186

View File

@ -27,30 +27,13 @@ export default async function Q58CallbackPage({
throw new Error("Client Id invalid (code: -1004)."); throw new Error("Client Id invalid (code: -1004).");
} }
// 检查应用是否被禁用 // verify discourse callback
if (!client.enabled) {
const redirectUri = client.redirectUri;
const redirectUrl = new URL(redirectUri);
redirectUrl.searchParams.set("error", "access_denied");
redirectUrl.searchParams.set("error_description", "该应用已被禁用");
return redirect(redirectUrl.toString());
}
// verify q58 callback
const user = await q58CallbackVerify(searchParams.sso, searchParams.sig); const user = await q58CallbackVerify(searchParams.sso, searchParams.sig);
// check authorization // check authorization
const authorization = await findAuthorization(user.id, client.id); const authorization = await findAuthorization(user.id, client.id);
if (authorization) { if (authorization) {
// 如果授权被禁用,也返回错误
if (!authorization.enabled) {
const redirectUrl = new URL(client.redirectUri);
redirectUrl.searchParams.set("error", "access_denied");
redirectUrl.searchParams.set("error_description", "您的授权已被禁用");
return redirect(redirectUrl.toString());
}
const redirectUrl = await getAuthorizeUrl(oauthParams); const redirectUrl = await getAuthorizeUrl(oauthParams);
return redirect(redirectUrl); return redirect(redirectUrl);
} }