diff --git a/src/lib/components/Header.svelte b/src/lib/components/Header.svelte index b172c7b..81a5828 100644 --- a/src/lib/components/Header.svelte +++ b/src/lib/components/Header.svelte @@ -44,15 +44,18 @@ <a href='/users/{data.username}'> {data.username} </a> - <a href='/logout'> + <a href='/account/logout'> Log out </a> <a href='/new_post'> Create </a> {:else} - <a href='/account'> - Log in / Register + <a href='/account/login'> + Log in + </a> + <a href='/account/register'> + Register </a> {/if} </div> \ No newline at end of file diff --git a/src/routes/account/login/+page.svelte b/src/routes/account/login/+page.svelte new file mode 100644 index 0000000..903cd08 --- /dev/null +++ b/src/routes/account/login/+page.svelte @@ -0,0 +1,35 @@ +<script> + import Area from '$lib/components/Area.svelte'; + import { handleSubmit } from '$lib/util.js'; + + export let form = {}; + + let submitFunc = async e => form = JSON.parse(await handleSubmit(e)) +</script> + +<Area handleSubmit=''> + <p slot="header"> + Log in + </p> + + <span slot='main'> + <h2>Login</h2> + <form action='/api/login' on:submit|preventDefault={submitFunc} method='POST'> + <p> + Username: <input name='user'> + </p> + <p> + Password: <input type='password' name='pass'> + </p> + <p> + <input type='submit' value='Log in'> + </p> + </form> + </span> + <p slot="footer"> + {#if form?.success} + <p>{form?.success}</p> + {/if} + By using the Sanifae service, you agree to the <a href='https://insfa.net/rules'>Terms of Service</a>. + </p> +</Area> \ No newline at end of file diff --git a/src/routes/account/logout/+server.js b/src/routes/account/logout/+server.js new file mode 100644 index 0000000..c7fa117 --- /dev/null +++ b/src/routes/account/logout/+server.js @@ -0,0 +1,18 @@ +/** @type {import('./$types').RequestHandler} */ +export async function GET({ cookies }) { + if (cookies.get('token',{ + path: '/' + })) + cookies.set( + 'token', + '', { + path: '/' + } + ) + + return new Response(null, { + status: 302, + headers: new Headers({ Location: '/'}) + }) + +} \ No newline at end of file diff --git a/src/routes/account/+page.svelte b/src/routes/account/register/+page.svelte similarity index 71% rename from src/routes/account/+page.svelte rename to src/routes/account/register/+page.svelte index d34f744..4e201e7 100644 --- a/src/routes/account/+page.svelte +++ b/src/routes/account/register/+page.svelte @@ -9,22 +9,10 @@ <Area handleSubmit=''> <p slot="header"> - Log in + Register </p> <span slot='main'> - <h2>Login</h2> - <form action='/api/login' on:submit|preventDefault={submitFunc} method='POST'> - <p> - Username: <input name='user'> - </p> - <p> - Password: <input type='password' name='pass'> - </p> - <p> - <input type='submit' value='Log in'> - </p> - </form> <h2>Register</h2> <form action='/api/register' on:submit|preventDefault={submitFunc} method='POST'> <p>