authentication - 在服务功能中访问会话存储
问题描述
我尝试创建纯函数或至少一些服务类,以使用类型化方法访问后端 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";
// ...
}
如果有人可以提供继续的提示,那就太好了。
先感谢您。
斋月
解决方案
推荐阅读
- php - 客户端错误:`GET http://cabinet.laravel.com/latest.zip` 导致`404 Not Found`
- python - 将 I2C 控制 C 函数重写为 Python
- python - 使用 torch.stack()
- oracle - 使用 DBMS_CRYPTO 解密 CLOB 时 Oracle 的值不正确
- sql - 如何在列中查找没有两年差异的记录
- javascript - 如何从 javascript 表单中的输入数字中删除零?
- java - 在 VSCode 中使用代码运行器扩展编译和运行 Java 代码
- azure - 用于导出超过 90 天处于非活动状态的 Sharepoint 站点的 Power shell 脚本
- image - 如何检查 Docker 映像中的单个层?
- cassandra - Cassandra 如何快速读取一个分区中的一列?