我已经将JWT令牌存储在会话存储中。但为了保护所有路线,我需要那个令牌。那么,我如何在服务器上运行的苗条工具包提供的加载函数上访问它呢?
您可以使用handle
和getSession
钩子的组合。
在handle
中,您可以访问请求的cookie,在这里您可以解析它们并将它们添加到请求中。稍后在getSession
中,您可以使用它来填充会话。
export async function handle({ request, resolve }) {
request.locals.token= await getToken(request.headers.cookie);
const response = await resolve(request);
return response
}
export function getSession(request) {
return {
token: request.locals.token ?? ''
}
}
此会话对象可作为load
函数的参数之一使用。
export async function load({ session }) {
const { token } = session
}
在大多数情况下,您将在句柄函数中解析令牌以获取存储在其中的数据,并将其传递给应用程序的其余部分。