mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-04-24 19:39:11 +00:00
* chore: restructure project into yarn workspaces, remove next * fix tests, remove webapp from terraform * remove more ui deployment bits * remove pages, fix FUNDING.yml * remove isomorphism * remove next providers * fix linting issues * feat: start basis of new web ui system on CRA * chore: move types to @roleypoly/types package * chore: move src/common/utils to @roleypoly/misc-utils * chore: remove roleypoly/ path remappers * chore: renmove vercel config * chore: re-add worker-types to api package * chore: fix type linting scope for api * fix(web): craco should include all of packages dir * fix(ci): change api webpack path for wrangler * chore: remove GAR actions from CI * chore: update codeql job * chore: test better github dar matcher in lint-staged
24 lines
775 B
TypeScript
24 lines
775 B
TypeScript
import KSUID from 'ksuid';
|
|
import { Bounce } from '../utils/bounce';
|
|
import { apiPublicURI, botClientID } from '../utils/config';
|
|
|
|
type URLParams = {
|
|
clientID: string;
|
|
redirectURI: string;
|
|
state: string;
|
|
};
|
|
|
|
const buildURL = (params: URLParams) =>
|
|
`https://discord.com/api/oauth2/authorize?client_id=${
|
|
params.clientID
|
|
}&response_type=code&scope=identify%20guilds&redirect_uri=${encodeURIComponent(
|
|
params.redirectURI
|
|
)}&state=${params.state}`;
|
|
|
|
export const LoginBounce = async (request: Request): Promise<Response> => {
|
|
const state = await KSUID.random();
|
|
const redirectURI = `${apiPublicURI}/login-callback`;
|
|
const clientID = botClientID;
|
|
|
|
return Bounce(buildURL({ state: state.string, redirectURI, clientID }));
|
|
};
|