fixed redirect after login
This commit is contained in:
parent
144124f4df
commit
d0af8e9b2e
|
|
@ -1,5 +1,5 @@
|
|||
import type { Actions } from "@sveltejs/kit";
|
||||
import type { PageServerLoad } from "./$types";
|
||||
import type { PageServerLoad } from "./$types";
|
||||
import { fail, redirect } from "@sveltejs/kit";
|
||||
|
||||
import Logs from "$lib/server/log"
|
||||
|
|
@ -7,22 +7,31 @@ import Logs from "$lib/server/log"
|
|||
import { authorize_password } from "$lib/server/auth";
|
||||
import SessionStore from "$lib/server/session_store";
|
||||
|
||||
function _get_redirect(url: URL) {
|
||||
let redirect_url = url.searchParams.get("redirect");
|
||||
url.searchParams.delete("redirect")
|
||||
|
||||
if (!redirect_url || !redirect_url.startsWith("/")) {
|
||||
redirect_url = "/"
|
||||
}
|
||||
|
||||
return redirect_url + "?" + url.searchParams.toString()
|
||||
}
|
||||
|
||||
export const load: PageServerLoad = ({ locals, url }) => {
|
||||
let redirect_url = url.searchParams.get("redirect") ?? "/";
|
||||
|
||||
if (locals.user != null) {
|
||||
redirect(302, redirect_url);
|
||||
redirect(302, _get_redirect(url));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const actions = {
|
||||
login: async ({ locals, request, cookies, url }) => {
|
||||
|
||||
let redirect_url = url.searchParams.get("redirect") ?? "/";
|
||||
url.searchParams.delete("/login")
|
||||
|
||||
if (locals.user != null) {
|
||||
redirect(302, redirect_url);
|
||||
redirect(302, _get_redirect(url));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -55,7 +64,7 @@ export const actions = {
|
|||
path: '/'
|
||||
})
|
||||
|
||||
redirect(302, redirect_url);
|
||||
redirect(302, _get_redirect(url));
|
||||
},
|
||||
logout: async ({ locals, cookies }) => {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<script lang="ts">
|
||||
import type { PageProps } from "./$types";
|
||||
import { enhance } from "$app/forms";
|
||||
import { page } from "$app/state";
|
||||
|
||||
let { form }: PageProps = $props();
|
||||
|
||||
|
|
@ -8,7 +9,7 @@
|
|||
|
||||
<div>
|
||||
<h1>Login</h1>
|
||||
<form id="login" method="POST" action="?/login" use:enhance={({formElement}) => { formElement.reset() }}>
|
||||
<form id="login" method="POST" action={`?/login&${page.url.searchParams.toString()}`} use:enhance={({formElement}) => { formElement.reset() }}>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
|
|
|
|||
Loading…
Reference in New Issue