当访问我的应用中的深层链接时,与深层链接相关的组件是第一个要渲染的页面,所以我认为它是 SvelteKit load function必须在服务器端运行,这是正确的吗?
如果是的话,我想知道load函数如何访问本地存储?它需要来自本地存储的数据,例如用户凭据、 token 等。
我尝试过,但似乎它仅当在客户端运行时才能访问加载函数,而不是在服务器端运行。
提前致谢!
最佳答案
It needs data from local storage like user credentials, tokens and so on.
不,事实并非如此。 localStorage
是浏览器的事情,您通常不应该在其中存储任何与安全相关的内容(除非它已加密)。如果恶意脚本以某种方式运行,它将能够访问该信息。
身份验证 token 应存储在 HTTP-only cookies 中.
The docs注意:
The argument to a
load
function is aLoadEvent
(or, for server-only load functions, aServerLoadEvent
which inheritsclientAddress
,cookies
,locals
,platform
andrequest
fromRequestEvent
)
正如您所看到的,在服务器加载函数中您可以访问 cookie。
关于svelte - 当 SvelteKit 加载函数在服务器端运行时,它如何访问本地存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74127146/