Skip to content

Commit 20a5639

Browse files
committed
Fix issues with Discord OAuth:
* Fix 401 error when fetching GuildMember * Ensure user cannot access pages without being logged in * Redirect user back to original URL after OAuth authentication
1 parent 53b4c78 commit 20a5639

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

src/lib/discord/api.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ function makeGetGuildMemberURL(r: GetGuildMemberRequest, apiURL = API_URL): stri
1515
export async function getGuildMember(r: GetGuildMemberRequest): Promise<APIGuildMember> {
1616
const response = await fetch(makeGetGuildMemberURL(r), {
1717
headers: {
18-
Authorization: `Bearer ${r.botToken}`
18+
Authorization: `Bot ${r.botToken}`
1919
}
2020
});
2121
if (!response.ok) {
22-
throw new Error(`Failed to get guild member: ${response.statusText}`);
22+
throw new Error(`Failed to get guild member: ${response.status} ${response.statusText}`);
2323
}
2424

2525
return await response.json();
@@ -49,7 +49,7 @@ export async function createMessage(r: CreateMessageRequest): Promise<APIGuildMe
4949
const response = await fetch(makeCreateMessageURL(r), {
5050
method: 'POST',
5151
headers: {
52-
Authorization: `Bearer ${r.botToken}`
52+
Authorization: `Bot ${r.botToken}`
5353
},
5454
body: JSON.stringify(r.body)
5555
});

src/routes/discord_oauth2/+server.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ export const GET: RequestHandler = async ({ url, locals }) => {
3434
return makeRedirect(
3535
makeOAuth2URL({
3636
clientID: DISCORD_CLIENT_ID,
37-
redirectURI: DISCORD_REDIRECT_URI
37+
redirectURI: DISCORD_REDIRECT_URI,
38+
state: JSON.stringify({ destination: state.destination })
3839
})
3940
);
4041
}

src/routes/forms/+layout.server.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ import { makeOAuth2URL } from '$lib/oauth2';
1717

1818
export const load: LayoutServerLoad = async ({ locals, url }) => {
1919
if (!locals.user) {
20-
redirect(303, makeOAuth2URL(url.toString()));
20+
throw redirect(303, makeOAuth2URL(url.toString()));
2121
}
2222
};

0 commit comments

Comments
 (0)