缓存内容
通常,托管服务提供商会在边缘提供缓存。大多数网站可以通过利用缓存来体验惊人的速度(和成本节省)。无需冷启动,无需处理请求,无需解析 Javascript...只需从 CDN 立即提供 HTML。
默认情况下,我们会将用户的身份验证数据发送到客户端的 HTML 中。如果您要缓存页面,这可能不是理想的做法。如果处理不当,用户可能会看到其他用户的身份验证数据。
要将缓存添加到您的 Nuxt 应用程序,请按照 Nuxt 关于混合渲染的文档进行操作。
警告
如果您发现自己需要使用服务器端渲染的身份验证方法(如 getProviders()
),则必须在 auth
配置对象上设置 baseURL
选项。 这也适用于开发环境。
致谢
非常感谢 KyleSmith0905 将路由规则实现到 NuxtAuth 中。查看他们的 PR 此处。
页面特定缓存规则
如果只有少数页面被缓存。请前往 Nuxt 配置 routeRules
,将 auth
键添加到您缓存的路由中。将 disableServerSideAuth
设置为 true。
ts
export default defineNuxtConfig({
modules: ['@sidebase/nuxt-auth'],
auth: {
// Optional - Needed for getProviders() method to work server-side
baseURL: 'http://localhost:3000',
},
routeRules: {
'/': {
swr: 86400000,
auth: {
disableServerSideAuth: true,
},
},
},
})
全局缓存规则
如果您的网站上所有/大多数页面都被缓存。请前往 Nuxt 配置,添加 auth
键(如果尚不存在)。将 disableServerSideAuth
设置为 true。
ts
export default defineNuxtConfig({
modules: ['@sidebase/nuxt-auth'],
auth: {
disableServerSideAuth: true,
// Optional - Needed for getProviders() method to work server-side
baseURL: 'http://localhost:3000',
},
})
组合规则
路由配置的选项优先于模块配置的选项。如果您在模块中禁用了服务器端身份验证,您仍然可以通过将 auth.disableServerSideAuth
设置为 false
来重新启用服务器端身份验证。
例如:理想情况下,除了您的个人资料页面之外,可以为每个页面添加缓存。
ts
export default defineNuxtConfig({
modules: ['@sidebase/nuxt-auth'],
auth: {
disableServerSideAuth: true,
},
routeRules: {
// Server side auth is disabled on this page because of global setting
'/': {
swr: 86400000,
},
// Server side auth is enabled on this page - route rules takes priority.
'/profile': {
auth: {
disableServerSideAuth: false,
},
},
},
})