diff --git a/pages/oauth/authorize.vue b/pages/oauth/authorize.vue
index 75bc504..ea414c4 100644
--- a/pages/oauth/authorize.vue
+++ b/pages/oauth/authorize.vue
@@ -4,7 +4,7 @@
class="mx-auto hidden md:inline-block h-20 ring-1 ring-white/20 rounded" />
+ :action="redirectUrl.toString()">
Login to your account
@@ -41,7 +41,7 @@
+ :href="issuerRedirectUrl(provider.id)">
@@ -130,4 +130,39 @@ const instance = useInstanceFromClient(
);
const ssoConfig = computed(() => instance.value?.sso);
+
+const redirectUrl = new URL("/api/auth/login", useBaseUrl().value);
+
+if (params.redirect_uri) {
+ redirectUrl.searchParams.set("redirect_uri", params.redirect_uri as string);
+}
+if (params.response_type) {
+ redirectUrl.searchParams.set(
+ "response_type",
+ params.response_type as string,
+ );
+}
+if (params.client_id) {
+ redirectUrl.searchParams.set("client_id", params.client_id as string);
+}
+if (params.scope) {
+ redirectUrl.searchParams.set("scope", params.scope as string);
+}
+if (params.state) {
+ redirectUrl.searchParams.set("state", params.state as string);
+}
+
+const issuerRedirectUrl = (issuerId: string) => {
+ const url = new URL("/oauth/sso", useBaseUrl().value);
+ params.redirect_uri &&
+ url.searchParams.set("redirect_uri", params.redirect_uri as string);
+ params.response_type &&
+ url.searchParams.set("response_type", params.response_type as string);
+ params.client_id &&
+ url.searchParams.set("client_id", params.client_id as string);
+ params.scope && url.searchParams.set("scope", params.scope as string);
+ params.state && url.searchParams.set("state", params.state as string);
+ url.searchParams.set("issuer", issuerId);
+ return url.toString();
+};
\ No newline at end of file