Compare commits
5 Commits
feature/au
...
feature/au
Author | SHA1 | Date | |
---|---|---|---|
ef51513fe1
|
|||
94514ec965
|
|||
f9a27cbbb7
|
|||
69150caab3
|
|||
2ed0b70780
|
@@ -3,24 +3,24 @@ import { oauthProviders } from '$lib/server/oauth';
|
|||||||
import { is } from 'typia';
|
import { is } from 'typia';
|
||||||
import { type AuthProvider, enabledAuthProviders } from '$lib/auth';
|
import { type AuthProvider, enabledAuthProviders } from '$lib/auth';
|
||||||
|
|
||||||
export async function GET({ params: { provider }, url, cookies }) {
|
export async function GET(event) {
|
||||||
|
const { provider } = event.params;
|
||||||
if (!is<AuthProvider>(provider) || !enabledAuthProviders[provider]) {
|
if (!is<AuthProvider>(provider) || !enabledAuthProviders[provider]) {
|
||||||
return new Response(null, { status: 404 });
|
return new Response(null, { status: 404 });
|
||||||
}
|
}
|
||||||
const oauthProvider = oauthProviders[provider];
|
const oauthProvider = oauthProviders[provider];
|
||||||
|
|
||||||
const inviteToken = url.searchParams.get('invite') ?? '';
|
|
||||||
const state = generateState();
|
const state = generateState();
|
||||||
const codeVerifier = generateCodeVerifier();
|
const codeVerifier = generateCodeVerifier();
|
||||||
const authUrl = oauthProvider.createAuthorizationURL(state + inviteToken, codeVerifier);
|
const url = oauthProvider.createAuthorizationURL(state, codeVerifier);
|
||||||
|
|
||||||
cookies.set(`${provider}_oauth_state`, state, {
|
event.cookies.set(`${provider}_oauth_state`, state, {
|
||||||
path: '/',
|
path: '/',
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
maxAge: 60 * 10, // 10 minutes
|
maxAge: 60 * 10, // 10 minutes
|
||||||
sameSite: 'lax',
|
sameSite: 'lax',
|
||||||
});
|
});
|
||||||
cookies.set(`${provider}_code_verifier`, codeVerifier, {
|
event.cookies.set(`${provider}_code_verifier`, codeVerifier, {
|
||||||
path: '/',
|
path: '/',
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
maxAge: 60 * 10, // 10 minutes
|
maxAge: 60 * 10, // 10 minutes
|
||||||
@@ -30,7 +30,7 @@ export async function GET({ params: { provider }, url, cookies }) {
|
|||||||
return new Response(null, {
|
return new Response(null, {
|
||||||
status: 302,
|
status: 302,
|
||||||
headers: {
|
headers: {
|
||||||
Location: authUrl.toString(),
|
Location: url.toString(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user