我尝试创建纯函数或至少一些服务类,以使用类型化方法访问后端 API。对于身份验证,我使用 cookie。
对于客户端请求,cookie 身份验证可以即时进行,但对于 ssr,我必须在使用fetch
.
我已经在会话中拥有所需的令牌,但是如果我尝试通过import { session } from '$app/stores';
组件外部访问会话,我得到了
Function called outside component initialization
.
一种选择是在每个 SSR api 函数上添加手动调用 cookie 标头作为参数,但这不会是一种干净的方式。
是否有人知道如何在组件外部访问会话,或者是否有任何可能的方法来定义包含访问存储(包括会话存储)的服务类,哪些功能可跨组件使用?
我想使用类似的东西:
export async function load({ page, fetch, session, context }) {
let me = (await service.getLoggedInUser())?.username ?? "not logged in";
// or:
me = (await getLoggedInUser())?.username ?? "not logged in";
// ...
}
代替:
export async function load({ page, fetch, session, context }) {
let me = (await service.getLoggedInUser(session))?.username ?? "not logged in";
// or:
me = (await getLoggedInUser(session)())?.username ?? "not logged in";
// ...
}
如果有人可以提供继续的提示,那就太好了。
先感谢您。
斋月