33 | Missing MS_CLIENT_ID, MS_CLIENT_SECRET or MS_REDIRECT_URI
34 |
`, 500);
35 | }
36 |
37 | const { pathname } = new URL(request.url);
38 |
39 | if (typeof CRON_PATH !== "undefined" && pathname.startsWith(CRON_PATH)) {
40 | await sendMessage("Scheduled start");
41 | for (let i = 0; i < MS_GRAPH_API_LIST.length; i++) {
42 | await fetchMSApi(MS_GRAPH_API_LIST[i]);
43 | await sleep(randomInt(1000, 5000));
44 | }
45 | await sendMessage("Scheduled finish");
46 | }
47 |
48 | if (await Token.get("refresh_token") !== null) {
49 | return fetch("https://welcome.developers.workers.dev");
50 | }
51 |
52 | if (pathname.startsWith("/login")) {
53 | return handleLogin(request);
54 | }
55 |
56 | if (pathname.startsWith("/callback")) {
57 | return handleCallback(request);
58 | }
59 |
60 | return createHTMLResponse(`
124 |
Error occurred: ${responseJson["error"]}
125 |
${responseJson["error_description"]}
126 |
See: ${responseJson["error_uri"]}
127 |
`, response.status);
128 | }
129 |
130 | let userInfo
131 | await Promise.all([
132 | Token.put("access_token", responseJson["access_token"], { expirationTtl: responseJson["expires_in"] }),
133 | Token.put("refresh_token", responseJson["refresh_token"]),
134 | getUserInfo(responseJson["access_token"]).then((resp) => {
135 | userInfo = resp;
136 | }),
137 | ]);
138 | return createHTMLResponse(`
139 | Successfully logged in as ${userInfo["displayName"]} (${userInfo["mail"]})
140 |
`);
141 | } catch (e) {
142 | return createHTMLResponse(`