Skip to content

Commit

Permalink
Merge pull request #728 from appwrite/login-redirect
Browse files Browse the repository at this point in the history
Add forceRedirect handling
  • Loading branch information
TorstenDittmann authored Feb 1, 2024
2 parents e11d985 + d3c1a72 commit 58bd9fc
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/routes/+layout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,17 @@ import { sdk } from '$lib/stores/sdk';
import { redirect } from '@sveltejs/kit';
import { Dependencies } from '$lib/constants';
import type { LayoutLoad } from './$types';
import { redirectTo } from './store';

export const ssr = false;

export const load: LayoutLoad = async ({ depends, url }) => {
depends(Dependencies.ACCOUNT);

redirectTo.set(url.searchParams.get('forceRedirect') || null);

url.searchParams.delete('forceRedirect');

try {
const account = await sdk.forConsole.account.get<{ organization?: string }>();

Expand Down
10 changes: 9 additions & 1 deletion src/routes/login/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,26 @@
import { Submit, trackEvent, trackError } from '$lib/actions/analytics';
import { isCloud } from '$lib/system';
import { page } from '$app/stores';
import { redirectTo } from '$routes/store';
let mail: string, pass: string, disabled: boolean;
async function login() {
try {
disabled = true;
await sdk.forConsole.account.createEmailSession(mail, pass);
await invalidate(Dependencies.ACCOUNT);
addNotification({
type: 'success',
message: 'Successfully logged in.'
});
if ($redirectTo) {
window.location.href = $redirectTo;
return;
}
await invalidate(Dependencies.ACCOUNT);
trackEvent(Submit.AccountCreate);
if ($page.url.searchParams) {
const redirect = $page.url.searchParams.get('redirect');
$page.url.searchParams.delete('redirect');
Expand All @@ -52,6 +59,7 @@
function onGithubLogin() {
let url = window.location.origin;
if ($page.url.searchParams) {
const redirect = $page.url.searchParams.get('redirect');
$page.url.searchParams.delete('redirect');
Expand Down
8 changes: 8 additions & 0 deletions src/routes/register/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import { ID } from '@appwrite.io/console';
import { isCloud } from '$lib/system';
import { page } from '$app/stores';
import { redirectTo } from '$routes/store';
let name: string, mail: string, pass: string, disabled: boolean;
let terms = false;
Expand All @@ -28,7 +29,14 @@
disabled = true;
await sdk.forConsole.account.create(ID.unique(), mail, pass, name ?? '');
await sdk.forConsole.account.createEmailSession(mail, pass);
if ($redirectTo) {
window.location.href = $redirectTo;
return;
}
await invalidate(Dependencies.ACCOUNT);
if ($page.url.searchParams) {
const redirect = $page.url.searchParams.get('redirect');
$page.url.searchParams.delete('redirect');
Expand Down
2 changes: 1 addition & 1 deletion src/routes/store.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { writable } from 'svelte/store';

export const loading = writable(true);

export const requestedMigration = writable<Record<string, string> | null>(null);
export const redirectTo = writable<string | null>(null);

0 comments on commit 58bd9fc

Please sign in to comment.