mirror of
https://github.com/documenso/documenso.git
synced 2026-07-13 22:37:24 +10:00
138d663c25
Merge origin/main into feat/external-2fa-codes. Resolve formatting conflicts caused by biome rollout; preserve both feature streams: PR's external 2FA token + signing-session 2FA proof additions plus main's RateLimit/RecipientExpired/signingReminders/date-auto-insert. In complete-document-with-token.ts, drop the duplicate early field-fetching block introduced when main moved that logic later with date auto-insert support; keep the EXTERNAL_TWO_FACTOR_AUTH check using derivedRecipientActionAuth.
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import { AppError } from '@documenso/lib/errors/app-error';
|
|
import { Hono } from 'hono';
|
|
|
|
import { GoogleAuthOptions, MicrosoftAuthOptions, OidcAuthOptions } from '../config';
|
|
import { handleOAuthCallbackUrl } from '../lib/utils/handle-oauth-callback-url';
|
|
import { handleOAuthOrganisationCallbackUrl } from '../lib/utils/handle-oauth-organisation-callback-url';
|
|
import type { HonoAuthContext } from '../types/context';
|
|
|
|
/**
|
|
* Have to create this route instead of bundling callback with oauth routes to provide
|
|
* backwards compatibility for self-hosters (since we used to use NextAuth).
|
|
*/
|
|
export const callbackRoute = new Hono<HonoAuthContext>()
|
|
/**
|
|
* OIDC callback verification.
|
|
*/
|
|
.get('/oidc', async (c) => handleOAuthCallbackUrl({ c, clientOptions: OidcAuthOptions }))
|
|
|
|
/**
|
|
* Organisation OIDC callback verification.
|
|
*/
|
|
.get('/oidc/org/:orgUrl', async (c) => {
|
|
const orgUrl = c.req.param('orgUrl');
|
|
|
|
try {
|
|
return await handleOAuthOrganisationCallbackUrl({
|
|
c,
|
|
orgUrl,
|
|
});
|
|
} catch (err) {
|
|
console.error(err);
|
|
|
|
if (err instanceof Error) {
|
|
throw new AppError(err.name, {
|
|
message: err.message,
|
|
statusCode: 500,
|
|
});
|
|
}
|
|
|
|
throw err;
|
|
}
|
|
})
|
|
|
|
/**
|
|
* Google callback verification.
|
|
*/
|
|
.get('/google', async (c) => handleOAuthCallbackUrl({ c, clientOptions: GoogleAuthOptions }))
|
|
|
|
/**
|
|
* Microsoft callback verification.
|
|
*/
|
|
.get('/microsoft', async (c) => handleOAuthCallbackUrl({ c, clientOptions: MicrosoftAuthOptions }));
|