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 { 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]) {
|
||||
return new Response(null, { status: 404 });
|
||||
}
|
||||
const oauthProvider = oauthProviders[provider];
|
||||
|
||||
const inviteToken = url.searchParams.get('invite') ?? '';
|
||||
const state = generateState();
|
||||
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: '/',
|
||||
httpOnly: true,
|
||||
maxAge: 60 * 10, // 10 minutes
|
||||
sameSite: 'lax',
|
||||
});
|
||||
cookies.set(`${provider}_code_verifier`, codeVerifier, {
|
||||
event.cookies.set(`${provider}_code_verifier`, codeVerifier, {
|
||||
path: '/',
|
||||
httpOnly: true,
|
||||
maxAge: 60 * 10, // 10 minutes
|
||||
@@ -30,7 +30,7 @@ export async function GET({ params: { provider }, url, cookies }) {
|
||||
return new Response(null, {
|
||||
status: 302,
|
||||
headers: {
|
||||
Location: authUrl.toString(),
|
||||
Location: url.toString(),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user