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

Function handleLogin

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

Source from the content-addressed store, hash-verified

169};
170
171const handleLogin = async (request: Request) => {
172 const url = new URL(request.url);
173 const transactionId = url.searchParams.get("transaction");
174 const transaction = transactionId ? transactions.get(transactionId) : undefined;
175 if (!transactionId || !transaction) return json({ error: "invalid_request" }, { status: 400 });
176 if (request.method === "GET") return text("OAuth test login");
177
178 const basic = decodeBasic(request.headers.get("authorization"));
179 if (!basic || basic.username !== "alice" || basic.password !== "password") {
180 return json(
181 { error: "access_denied" },
182 { status: 401, headers: { "www-authenticate": 'Basic realm="Executor test servers"' } },
183 );
184 }
185 const code = `code_${crypto.randomUUID()}`;
186 transactions.delete(transactionId);
187 authorizationCodes.set(code, { ...transaction, username: basic.username });
188 const callback = new URL(transaction.redirectUri);
189 callback.searchParams.set("code", code);
190 callback.searchParams.set("state", transaction.state);
191 return redirect(callback.toString());
192};
193
194const handleToken = async (request: Request) => {
195 const params = new URLSearchParams(await request.text());

Callers 1

handleRequestFunction · 0.85

Calls 8

textFunction · 0.85
decodeBasicFunction · 0.85
setMethod · 0.80
toStringMethod · 0.80
jsonFunction · 0.70
redirectFunction · 0.70
getMethod · 0.65
deleteMethod · 0.65

Tested by

no test coverage detected