mirror of
https://github.com/graphql-hive/console
synced 2026-05-04 14:08:28 +00:00
* feat: support login via okta * add deployment config * feat: automatically start okta login when visiting /auth with okta provider query parameter * remove trailing slash from base url * laurin pls * ... * adjust deployment url * we dont need this * docs: document how to enabled Google and GitHub social login (#511) * docs: document how to enabled Google and GitHub social login * Apply suggestions from code review * Apply suggestions from code review * docs: add Okta instructions * fix typo * add database migration * feat: env decoding * auto generate id * add generates types for the postgres table * implement crud graphql fields for the oidc integration entites * add unique constraint for the oidc domain column * use correct sql query for updating an oidc integration * return organization from deleteOIDCIntegration ok result * add crud forms to the settings page * update integration test fixture value * drop unique constraint for oidc_integrations.domain as this would allow a malicous user to block another account from using a domain * move notice to isolated component * apply url normalization in a central place * implement supertokens provider and overrides for dynamic oidc provider integrations * relocate code to correct files * prettify oidc crud forms * replace Query.isOIDCIntegrationFeatureEnabled with the Organization.viewerCanManageOIDCIntegration field * do not show oidc integrations for personal organizations + disable crud endpoints if the feature is disabled * load oidc integration for the supertokens flow via trpc from the server * prepare encryption secret within constructor * add user to organization upon oidc login * login via oidc does not create a personal organization * redirect oidc user to oidc organization * disallow oidc users to create an organization * disallow oidc accounts joining another organization * add test for updating an oidc integration * enhance ui * add documentation for OIDC SSO * add more tests * import Callout component * update snapshots * rename field User.isLinkedToOIDCIntegration to User.canSwitchOrganization to be more decriptive * add traling new line * gracefully handle unique constraint * upgrade supertokens-auth-react and adjust the code in order to remove the global preApiHook * sync image versions with tests * remove obsolete comment * rename database column * bruv * add test for oidc user deletion
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { superTokensNextWrapper } from 'supertokens-node/nextjs';
|
|
import { middleware } from 'supertokens-node/framework/express';
|
|
import { NextApiRequest, NextApiResponse } from 'next';
|
|
import { Request, Response } from 'express';
|
|
import supertokens from 'supertokens-node';
|
|
import { backendConfig } from '@/config/supertokens/backend';
|
|
import NextCors from 'nextjs-cors';
|
|
import { env } from '@/env/backend';
|
|
|
|
supertokens.init(backendConfig());
|
|
|
|
/**
|
|
* Route for proxying to the underlying SuperTokens backend.
|
|
*/
|
|
export default async function superTokens(req: NextApiRequest & Request, res: NextApiResponse & Response) {
|
|
// NOTE: We need CORS only if we are querying the APIs from a different origin
|
|
await NextCors(req, res, {
|
|
methods: ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE'],
|
|
origin: env.appBaseUrl,
|
|
credentials: true,
|
|
allowedHeaders: ['content-type', ...supertokens.getAllCORSHeaders()],
|
|
});
|
|
|
|
await superTokensNextWrapper(
|
|
async next => {
|
|
await middleware()(req, res, next);
|
|
},
|
|
req,
|
|
res
|
|
);
|
|
|
|
if (!res.writableEnded) {
|
|
res.status(404).send('Not found');
|
|
}
|
|
}
|