Build SvelteKit authentication with Logto
Learn how to build a user authentication flow with SvelteKit by integrating Logto SDK.
Learn how to build a user authentication flow with SvelteKit by integrating Logto SDK.
In this tutorial, we will show you how to build a user authentication flow with SvelteKit by integrating Logto SDK. The tutorial uses TypeScript as the programming language.
Before you begin, ensure you have the following:
To get started, create a Logto application with the "Traditional web" type. Follow these steps to create a Logto application:
Then you should see an interactive guide that guides you through the process of integrating Logto SDK with your SvelteKit application. The following content can be a reference for future use.
Install Logto SDK via your favorite package manager:
In your hooks.server.ts file, add the following code to inject the Logto hook into your server:
Since these information are sensitive, it's recommended to use environment variables:
If you have multiple hooks, you can use the sequence() helper function to chain them:
Now you can access the Logto client in the locals object. For TypeScript, you can add the type to app.d.ts:
We'll discuss the user object later.
Switch to the application details page of Logto Console. Add a Redirect URI http://localhost:3000/callback.
Redirect URI is an OAuth 2.0 concept which implies the location should redirect after authentication.
Similarly, add http://localhost:3000/ to the "Post sign-out redirect URI" section.
Post Sign-out Redirect URI is an OAuth 2.0 concept which implies the location should redirect after signing out.
Then click "Save" to save the changes.
Back to your app, in the page where you want to implement sign-in and sign-out, define the following actions:
Then use these actions in your Svelte component:
To display the user's information, you can inject the locals.user object into the layout, thus making it available to all pages:
In your Svelte component:
Now you can run the application and try to sign-in/sign-out with Logto:
If you encounter any issues during the integration, please don't hesitate to join our Discord server to chat with the community and the Logto team!