feat: log in with google
This commit is contained in:
		
							parent
							
								
									bb2fa55cd5
								
							
						
					
					
						commit
						8a8b4caa18
					
				
					 11 changed files with 403 additions and 74 deletions
				
			
		|  | @ -3,7 +3,6 @@ import { PUBLIC_API_BASE } from "$env/static/public"; | |||
| import type { HandleFetch } from "@sveltejs/kit"; | ||||
| 
 | ||||
| export const handleFetch: HandleFetch = async ({ request, fetch }) => { | ||||
| 	console.log(PUBLIC_API_BASE, PRIVATE_INTERNAL_API_HOST, PRIVATE_API_HOST); | ||||
| 	if (request.url.startsWith(`${PUBLIC_API_BASE}/internal`)) { | ||||
| 		request = new Request(request.url.replace(PUBLIC_API_BASE, PRIVATE_INTERNAL_API_HOST), request); | ||||
| 	} else if (request.url.startsWith(PUBLIC_API_BASE)) { | ||||
|  |  | |||
|  | @ -52,7 +52,9 @@ | |||
| 		"register-with-email": "Register with an email address", | ||||
| 		"email-label": "Your email address", | ||||
| 		"confirm-password-label": "Confirm password", | ||||
| 		"register-with-email-init-success": "Success! An email has been sent to your inbox, please press the link there to continue." | ||||
| 		"register-with-email-init-success": "Success! An email has been sent to your inbox, please press the link there to continue.", | ||||
| 		"register-with-google": "Register with a Google account", | ||||
| 		"remote-google-account-label": "Your Google account" | ||||
| 	}, | ||||
| 	"error": { | ||||
| 		"bad-request-header": "Something was wrong with your input", | ||||
|  |  | |||
|  | @ -3,7 +3,8 @@ | |||
| import type { Cookies } from "@sveltejs/kit"; | ||||
| import { DateTime } from "luxon"; | ||||
| 
 | ||||
| export const TOKEN_COOKIE_NAME = "__Host-pronounscc-token"; | ||||
| // export const TOKEN_COOKIE_NAME = "__Host-pronounscc-token";
 | ||||
| export const TOKEN_COOKIE_NAME = "pronounscc-token"; | ||||
| 
 | ||||
| export const setToken = (cookies: Cookies, token: string) => | ||||
| 	cookies.set(TOKEN_COOKIE_NAME, token, { path: "/" }); | ||||
|  |  | |||
|  | @ -0,0 +1,8 @@ | |||
| import createCallbackLoader from "$lib/actions/callback"; | ||||
| import createRegisterAction from "$lib/actions/register"; | ||||
| 
 | ||||
| export const load = createCallbackLoader("google"); | ||||
| 
 | ||||
| export const actions = { | ||||
| 	default: createRegisterAction("/auth/google/register"), | ||||
| }; | ||||
|  | @ -0,0 +1,31 @@ | |||
| <script lang="ts"> | ||||
| 	import Error from "$components/Error.svelte"; | ||||
| 	import NewAuthMethod from "$components/settings/NewAuthMethod.svelte"; | ||||
| 	import OauthRegistrationForm from "$components/settings/OauthRegistrationForm.svelte"; | ||||
| 	import { t } from "$lib/i18n"; | ||||
| 	import type { ActionData, PageData } from "./$types"; | ||||
| 
 | ||||
| 	type Props = { data: PageData; form: ActionData }; | ||||
| 	let { data, form }: Props = $props(); | ||||
| </script> | ||||
| 
 | ||||
| <svelte:head> | ||||
| 	<title>{$t("auth.register-with-google")} • pronouns.cc</title> | ||||
| </svelte:head> | ||||
| 
 | ||||
| <div class="container"> | ||||
| 	{#if data.error} | ||||
| 		<h1>{$t("auth.register-with-google")}</h1> | ||||
| 		<Error error={data.error} /> | ||||
| 	{:else if data.isLinkRequest} | ||||
| 		<NewAuthMethod method={data.newAuthMethod!} user={data.meUser!} /> | ||||
| 	{:else} | ||||
| 		<OauthRegistrationForm | ||||
| 			title={$t("auth.register-with-google")} | ||||
| 			remoteLabel={$t("auth.remote-google-account-label")} | ||||
| 			remoteUser={data.remoteUser!} | ||||
| 			ticket={data.ticket!} | ||||
| 			error={form?.error} | ||||
| 		/> | ||||
| 	{/if} | ||||
| </div> | ||||
|  | @ -0,0 +1,12 @@ | |||
| import { apiRequest } from "$api"; | ||||
| import { redirect } from "@sveltejs/kit"; | ||||
| 
 | ||||
| export const load = async ({ fetch, cookies }) => { | ||||
| 	const { url } = await apiRequest<{ url: string }>("GET", "/auth/google/add-account", { | ||||
| 		isInternal: true, | ||||
| 		fetch, | ||||
| 		cookies, | ||||
| 	}); | ||||
| 
 | ||||
| 	redirect(303, url); | ||||
| }; | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue