Nuxt集成Auth0后$auth.loggedIn返回false且Vuex无用户数据问题求助
排查优先级从高到低整理了常见的遗漏配置和踩坑点:
- 先确认
nuxt.config.js的modules数组里正确注册了依赖模块,顺序不能错,必须先注册axios再注册auth模块:
modules: [ '@nuxtjs/axios', '@nuxtjs/auth-next' // 注意nuxt2必须用auth-next版本,旧版@nuxtjs/auth不兼容auth0新规则 ],
- 检查Auth0后台的域名白名单配置,三个配置项必须都填写你本地/线上的访问地址:
- Allowed Callback URLs:比如本地开发填
http://localhost:3000/,要和你auth配置里的redirect.callback完全一致 - Allowed Logout URLs:同上填
http://localhost:3000/ - Allowed Web Origins:同上填
http://localhost:3000/
- Allowed Callback URLs:比如本地开发填
- 检查环境变量是否正确加载:
AUTH0_DOMAIN不要带https://前缀,格式为xxx.us.auth0.com这类纯域名- 可以在配置里先写死固定值测试,排除.env文件加载失败的问题
- 补充auth配置的cookie适配项,尤其是开启SSR的项目必须加,否则服务端渲染时拿不到客户端的认证状态:
auth: { // 新增这段cookie配置 cookie: { secure: process.env.NODE_ENV === 'production' // 生产环境开https才设为true,本地开发设为false }, redirect: { login: '/', callback: '/' }, strategies: { local: false, auth0: { domain: process.env.AUTH0_DOMAIN, client_id: process.env.AUTH0_CLIENT_ID, // 如果你有自定义的auth0 audience可以加上,没有可以省略 // audience: process.env.AUTH0_AUDIENCE } } }
- 调试时可以打开浏览器控制台的应用标签,查看LocalStorage和Cookie里有没有
auth._token.auth0、auth._refresh_token.auth0这类字段,如果没有说明回调阶段就没拿到授权凭证,优先排查Auth0后台的配置和域名白名单。
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

