diff options
| author | Adam Soltys <[email protected]> | 2022-10-03 10:21:24 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-10-03 10:21:24 -0700 |
| commit | 1792eb0ce5a2ff127e9f3c3bce392749f20b3f86 (patch) | |
| tree | ebae8e1984d66cac88f04177fcad1a279313aa8c /src | |
| parent | cb272477247582355d38bc6c47b1795801689a55 (diff) | |
| download | coinos-ui-1792eb0ce5a2ff127e9f3c3bce392749f20b3f86.tar.gz coinos-ui-1792eb0ce5a2ff127e9f3c3bce392749f20b3f86.zip | |
migrate to new actions/cookies api
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/utils.js | 18 | ||||
| -rw-r--r-- | src/routes/+layout.server.js | 8 | ||||
| -rw-r--r-- | src/routes/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/[username]/transactions/[...page]/+page.server.js | 2 | ||||
| -rw-r--r-- | src/routes/disable2fa/+server.js | 4 | ||||
| -rw-r--r-- | src/routes/enable2fa/+server.js | 4 | ||||
| -rw-r--r-- | src/routes/invoice/+server.js | 4 | ||||
| -rw-r--r-- | src/routes/login/+page.server.js | 13 | ||||
| -rw-r--r-- | src/routes/logout/+page.server.js | 16 | ||||
| -rw-r--r-- | src/routes/register/+page.server.js | 20 | ||||
| -rw-r--r-- | src/routes/send/bitcoin/[address]/+page.server.js | 6 | ||||
| -rw-r--r-- | src/routes/send/lightning/[payreq]/+page.server.js | 4 | ||||
| -rw-r--r-- | src/routes/user/+server.js | 15 | ||||
| -rw-r--r-- | src/routes/withdraw/+server.js | 4 |
14 files changed, 47 insertions, 73 deletions
diff --git a/src/lib/utils.js b/src/lib/utils.js index f2c7a6a4..a7d0adaa 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -1,4 +1,3 @@ -import cookie from 'cookie'; import { browser } from '$app/environment'; import { toast } from '@zerodevx/svelte-toast'; import { goto } from '$app/navigation'; @@ -107,28 +106,17 @@ export const info = (m) => { }); }; -export const login = async (user, setHeaders) => { +export const login = async (user, cookies) => { let maxAge = 30 * 24 * 60 * 60; let { token } = await post('/login', user); let expires = new Date(); expires.setSeconds(expires.getSeconds() + maxAge); - setHeaders({ - 'set-cookie': cookie.serialize('token', token, { - httpOnly: true, - maxAge, - sameSite: 'lax', - path: '/', - expires - }) - }); + cookies.set('token', token, { path: '/' }); }; -export const auth = (req) => { - let { token } = cookie.parse(req.headers.get('cookie') || ''); - return { authorization: `Bearer ${token}` }; -}; +export const auth = (cookies) => ({ authorization: `Bearer ${cookies.get('token')}` }); export const f = (s, currency) => new Intl.NumberFormat('en-US', { diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js index ea3ccfdb..e31ea106 100644 --- a/src/routes/+layout.server.js +++ b/src/routes/+layout.server.js @@ -4,10 +4,10 @@ import { protectedRoutes } from '$lib/utils'; import { get, post, auth } from '$lib/utils'; import { env } from '$env/dynamic/public'; -export const { PUBLIC_BTC: btc } = env; +export const { PUBLIC_BTC: btc } = env; -export async function load({ request, setHeaders, url, params }) { - let { token } = cookie.parse(request.headers.get('cookie') || ''); +export async function load({ cookies, request, url, params }) { + let token = cookies.get('token'); let user; let rates; let subject; @@ -31,7 +31,7 @@ export async function load({ request, setHeaders, url, params }) { if (account) { let { id } = account; if (user.account_id !== id) { - user = await post('/shiftAccount', { id }, auth(request)); + user = await post('/shiftAccount', { id }, auth(cookies)); } } } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 37e5db78..d7df57d8 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -28,7 +28,7 @@ <!-- banner --> <div class="mt-[101.7px] md:mt-0 w-full text-center py-4 border border-b-black text-secondary"> <p> - {$t('newSiteHeader')} + {@html $t('newSiteHeader')} </p> </div> diff --git a/src/routes/[username]/transactions/[...page]/+page.server.js b/src/routes/[username]/transactions/[...page]/+page.server.js index d84c895a..5b88c32b 100644 --- a/src/routes/[username]/transactions/[...page]/+page.server.js +++ b/src/routes/[username]/transactions/[...page]/+page.server.js @@ -4,7 +4,7 @@ let offset = 25; export async function load({ params, request }) { let page = parseInt(params.page || 1); - let transactions = await get('/payments', auth(request)); + let transactions = await get('/payments', auth(cookies)); let total = transactions.length; let pages = new Array(Math.ceil(total / offset)); let i = (page - 1) * offset; diff --git a/src/routes/disable2fa/+server.js b/src/routes/disable2fa/+server.js index be09f3f4..237da445 100644 --- a/src/routes/disable2fa/+server.js +++ b/src/routes/disable2fa/+server.js @@ -1,8 +1,8 @@ import { auth, post } from '$lib/utils'; -export async function PUT({ request }) { +export async function PUT({ cookies, request }) { let body = await request.json(); - let res = await post('/disable2fa', body, auth(request)); + let res = await post('/disable2fa', body, auth(cookies)); return new Response(JSON.stringify(res)); } diff --git a/src/routes/enable2fa/+server.js b/src/routes/enable2fa/+server.js index eb69a341..3120e613 100644 --- a/src/routes/enable2fa/+server.js +++ b/src/routes/enable2fa/+server.js @@ -1,8 +1,8 @@ import { auth, post } from '$lib/utils'; -export async function PUT({ request }) { +export async function PUT({ cookies, request }) { let body = await request.json(); - let res = await post('/2fa', body, auth(request)); + let res = await post('/2fa', body, auth(cookies)); return new Response(JSON.stringify(res)); } diff --git a/src/routes/invoice/+server.js b/src/routes/invoice/+server.js index 9b96b114..5b2f2b39 100644 --- a/src/routes/invoice/+server.js +++ b/src/routes/invoice/+server.js @@ -1,10 +1,10 @@ import { auth, get, post } from '$lib/utils'; -export async function POST({ request, parent }) { +export async function POST({ cookies, request }) { let { amount, currency, network = 'lightning', prompt, rate, tip, user } = await request.json(); let invoice = { amount, currency, network, prompt, rate, tip }; - return new Response(JSON.stringify(await post('/invoice', { invoice, user }, auth(request))), { + return new Response(JSON.stringify(await post('/invoice', { invoice, user }, auth(cookies))), { headers: { 'content-type': 'application/json' } }); } diff --git a/src/routes/login/+page.server.js b/src/routes/login/+page.server.js index 7c4eb295..28f72712 100644 --- a/src/routes/login/+page.server.js +++ b/src/routes/login/+page.server.js @@ -1,8 +1,11 @@ +import { redirect } from '@sveltejs/kit'; import { login } from '$lib/utils'; -export async function POST({ setHeaders, request }) { - let user = Object.fromEntries(await request.formData()); - await login(user, setHeaders); +export const actions = { + default: async ({ cookies, request }) => { + let user = Object.fromEntries(await request.formData()); + await login(user, cookies); - return { location: `/${user.username}/dashboard` }; -} + throw redirect(303, `/${user.username}/dashboard`); + } +}; diff --git a/src/routes/logout/+page.server.js b/src/routes/logout/+page.server.js index 01ddc1aa..6d863cb1 100644 --- a/src/routes/logout/+page.server.js +++ b/src/routes/logout/+page.server.js @@ -2,22 +2,12 @@ import { redirect } from '@sveltejs/kit'; import cookie from 'cookie'; const opts = { - httpOnly: true, - sameSite: 'lax', + expires: new Date(0), path: '/' }; export async function load({ cookies }) { - cookies.set('set-cookie', [ - cookies.serialize('token', '', { - ...opts, - expires: new Date(0) - }), - cookies.serialize('refresh_token', '', { - ...opts, - expires: new Date(0) - }) - ]); - + cookies.set('token', '', opts); + cookies.set('refresh_token', '', opts); throw redirect(302, '/logout/done'); } diff --git a/src/routes/register/+page.server.js b/src/routes/register/+page.server.js index 23c3800d..95ea4511 100644 --- a/src/routes/register/+page.server.js +++ b/src/routes/register/+page.server.js @@ -1,13 +1,15 @@ +import { redirect } from '@sveltejs/kit'; import { post, login } from '$lib/utils'; -export async function POST({ request, setHeaders }) { - let form = Object.fromEntries(await request.formData()); - let { username, password, redirect } = form; +export const actions = { + default: async ({ cookie, request }) => { + let form = Object.fromEntries(await request.formData()); + let { username, password, redirect: r } = form; - console.log('REDIRECT', redirect); - let user = { username, password }; - await post('/register', { user }); - await login(user, setHeaders); + let user = { username, password }; + await post('/register', { user }); + await login(user, cookie); - return { location: redirect || `/${user.username}/dashboard` }; -} + throw redirect(303, r || `/${user.username}/dashboard`); + } +}; diff --git a/src/routes/send/bitcoin/[address]/+page.server.js b/src/routes/send/bitcoin/[address]/+page.server.js index 4cc3736d..880804e5 100644 --- a/src/routes/send/bitcoin/[address]/+page.server.js +++ b/src/routes/send/bitcoin/[address]/+page.server.js @@ -2,10 +2,10 @@ import { redirect } from '@sveltejs/kit'; import { btc as asset, auth, post } from '$lib/utils'; export const actions = { - default: async ({ request }) => { + default: async ({ cookies, request }) => { let { address, amount } = Object.fromEntries(await request.formData()); - let { tx } = await post('/bitcoin/fee', { address, amount, asset }, auth(request)); - await post('/bitcoin/send', { address, tx }, auth(request)); + let { tx } = await post('/bitcoin/fee', { address, amount, asset }, auth(cookies)); + await post('/bitcoin/send', { address, tx }, auth(cookies)); throw redirect(307, '/sent'); } }; diff --git a/src/routes/send/lightning/[payreq]/+page.server.js b/src/routes/send/lightning/[payreq]/+page.server.js index 0030d690..89c03b40 100644 --- a/src/routes/send/lightning/[payreq]/+page.server.js +++ b/src/routes/send/lightning/[payreq]/+page.server.js @@ -6,9 +6,9 @@ export async function load({ params }) { } export const actions = { - default: async ({ request }) => { + default: async ({ cookies, request }) => { let body = Object.fromEntries(await request.formData()); - await post('/lightning/send', body, auth(request)); + await post('/lightning/send', body, auth(cookies)); throw redirect(307, '/sent'); } }; diff --git a/src/routes/user/+server.js b/src/routes/user/+server.js index bb02ac54..c9490984 100644 --- a/src/routes/user/+server.js +++ b/src/routes/user/+server.js @@ -1,25 +1,16 @@ import { auth, post } from '$lib/utils'; import cookie from 'cookie'; -export async function PUT({ request, setHeaders }) { +export async function PUT({ cookies, request }) { let user = await request.json(); - let res = await post('/user', user, auth(request)); + let res = await post('/user', user, auth(cookies)); let maxAge = 30 * 24 * 60 * 60; let expires = new Date(); expires.setSeconds(expires.getSeconds() + maxAge); - setHeaders({ - 'content-type': 'application/json', - 'set-cookie': cookie.serialize('token', res.token, { - httpOnly: true, - maxAge, - sameSite: 'lax', - path: '/', - expires - }) - }); + cookies.set('token', res.token, { expires, path: '/' }); return new Response(JSON.stringify(res)); } diff --git a/src/routes/withdraw/+server.js b/src/routes/withdraw/+server.js index cb9d177a..718707d0 100644 --- a/src/routes/withdraw/+server.js +++ b/src/routes/withdraw/+server.js @@ -1,8 +1,8 @@ import { auth, post } from '$lib/utils'; -export async function POST({ request }) { +export async function POST({ cookies, request }) { let body = await request.json(); - await post('/lightning/send', body, auth(request)); + await post('/lightning/send', body, auth(cookies)); return new Response(JSON.stringify('ok'), { headers: { 'content-type': 'application/json' } }); } |
