我想创建一个 Nuxt.js 中间件来检查用户是否经过身份验证。在应用程序内部导航时效果很好。但是当我刷新页面时,我总是得到:
[错误] 43:48.846 foo - 服务器 { 15:43:48 错误:'未通过身份验证' } 错误 [错误] 43:48.844 AuthError - 15:43:48 错误:未正确配置 Amplify。 配置对象缺少必需的身份验证属性。 通过`amplify add auth`添加身份验证后,您是否运行了`amplify push`? 有关更多信息,请参阅 https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup
AWS Amplify 在这里有一篇关于 SSR 支持的文章:SSR Support for AWS Amplify 在那里您可以找到启用 SSR 和检查用户身份验证的代码
在 Nuxt.js 文档中,您可以找到:
在通用模式下,中间件将在服务器端(对 Nuxt 应用程序的第一个请求,例如直接访问应用程序或刷新页面时)调用一次,在导航到更多路由时在客户端调用一次。
好的,所以我在我的放大插件中启用了 SSR 并调整了中间件:
if (process.server) {
const { Auth } = withSSRContext(context.req)
try {
await Auth.currentAuthenticatedUser()
} catch (error) {
return context.redirect(302, '/auth/signin')
}
}
当我刷新页面时,代码被执行,但我总是收到“未通过身份验证”错误和“未正确配置 Amplify”。另一方面,在客户端(登录、注册等)一切正常。
有什么想法吗?我找不到解决办法...
亲切的问候