-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
feat: make handleFetch
a shared hook
#13755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
SomaticIT
wants to merge
8
commits into
sveltejs:main
Choose a base branch
from
SomaticIT:@feat/client-handle-fetch
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
🦋 Changeset detectedLatest commit: 9b4bb44 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
1c70e91
to
0518df8
Compare
195ccbd
to
9b4bb44
Compare
Nobody wants to review ? |
Thanks for the PR! The team will have to discuss this first and it might be better to do so in an issue beforehand. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello Svelte Team,
I send you this PR to make
handleFetch
a shared hook that can be used on both client and server side.Motivation
I'm working a hybrid client/server administration portal where authentication is done using
OAuth
/OIDC
+JWT
tokens. I'm trying to create a secure and performant authentication process and I noticed that we could create something very powerful with SvelteKit by improving some features.Indeed, a good practice when working on a SSR environment is:
access token
andrefresh token
to clientrefresh token
on a cookie (not the access token)However, on a very hybrid scenarios where requests are done sometimes on the client, sometimes on the server, it multiplies the numbers of refresh token requests and create a bottleneck on the auth server.
So a good improvement would be to constantly pass the access token from the client to the server to allow reusing during the session. I noticed that we can take control of
fetch
requests on the server side but not on the client side.Other use cases
I see some scenarios where controling the client-side
fetch
would be useful:load
andaction
functionsImplementation
This PR replicates the behavior of the server-side
handleFetch
hook with one difference: the hook does not have access toevent
.Notes
I wanted to include a test similar to the server-side
handleFetch
. However I did not find any tests for server-sidehandleFetch
.I'm open to any idea to create tests for both hooks.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
Tests
pnpm test
and lint the project withpnpm lint
andpnpm check
Changesets
pnpm changeset
and following the prompts. Changesets that add features should beminor
and those that fix bugs should bepatch
. Please prefix changeset messages withfeat:
,fix:
, orchore:
.Edits