MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / handleAuthorize

Function handleAuthorize

packages/core/test-servers/src/worker.ts:141–169  ·  view source on GitHub ↗
(request: Request)

Source from the content-addressed store, hash-verified

139};
140
141const handleAuthorize = (request: Request) => {
142 const url = new URL(request.url);
143 const clientId = url.searchParams.get("client_id");
144 const redirectUri = url.searchParams.get("redirect_uri");
145 const state = url.searchParams.get("state");
146 const codeChallenge = url.searchParams.get("code_challenge");
147 if (!clientId || !redirectUri || !state || !codeChallenge) {
148 return json({ error: "invalid_request" }, { status: 400 });
149 }
150 const client = clients.get(clientId);
151 if (client?.redirectUris.size && !client.redirectUris.has(redirectUri)) {
152 return json(
153 { error: "invalid_request", error_description: "redirect_uri is not registered" },
154 { status: 400 },
155 );
156 }
157 if (!client) {
158 clients.set(clientId, { clientSecret: null, redirectUris: new Set([redirectUri]) });
159 }
160 const transaction = `txn_${crypto.randomUUID()}`;
161 transactions.set(transaction, {
162 clientId,
163 redirectUri,
164 state,
165 codeChallenge,
166 scope: url.searchParams.get("scope"),
167 });
168 return redirect(`${url.origin}/login?transaction=${encodeURIComponent(transaction)}`);
169};
170
171const handleLogin = async (request: Request) => {
172 const url = new URL(request.url);

Callers 1

handleRequestFunction · 0.85

Calls 4

setMethod · 0.80
jsonFunction · 0.70
redirectFunction · 0.70
getMethod · 0.65

Tested by

no test coverage detected