Nuxt.js对接WordPress REST API登录成功后无法跳转及鉴权存储异常
问题背景
为无头WordPress项目搭建登录界面,前端采用Nuxt.js框架,后端使用WordPress搭配JWT Auth插件实现令牌认证功能。
当前登录接口可正常请求,能够成功获取预期的登录返回数据,但登录成功后的重定向逻辑未生效,同时认证数据也未存储到Nuxt.js的$auth API中。
相关参考信息:
- 登录页截图:

- 原有问题配置:
auth: { strategies: { local: { endpoints: { login: { url: 'https://clientsite.test/wp-json/jwt-auth/v1/token', method: 'post', propertyName: 'token' }, user: { url: 'https://clientsite.test/wp-json/wp/v2/users/me/', method: 'post', propertyName: false }, }, tokenRequired: true, tokenType: 'JWT', globalToken: true, redirect: { login: '/login', home: '/home', logout: '/logout' } }, }, },
故障原因
配置存在3处核心错误,直接导致认证流程中断:
redirect配置层级错误:该配置属于Nuxt Auth模块的根级配置项,写在strategies.local内部时模块无法读取,自然不会触发登录后重定向。- 用户信息接口请求方法错误:WordPress REST API的
/wp/v2/users/me接口仅支持GET请求,配置为post时登录后拉取用户信息的请求会失败,整个认证流程终止,token不会写入$auth存储。 - Token类型配置不匹配:JWT Auth插件默认返回的token鉴权类型为
Bearer,配置为JWT会导致后续接口请求携带的Authorization头格式错误,鉴权失败。 - 额外排查点:如果登录逻辑是自行封装axios请求登录接口,而非调用$auth内置的登录方法,也不会触发模块内置的token存储、用户拉取、重定向流程。
修复方案
- 调整auth配置结构,修正错误项,参考正确配置如下:
auth: { // 将重定向配置移至auth根级 redirect: { login: '/login', home: '/home', logout: '/logout' }, strategies: { local: { endpoints: { login: { url: 'https://clientsite.test/wp-json/jwt-auth/v1/token', method: 'post', propertyName: 'token' }, user: { // 修正请求方法为GET url: 'https://clientsite.test/wp-json/wp/v2/users/me/', method: 'get', propertyName: false }, logout: false }, tokenRequired: true, // 修正token类型为Bearer,和插件返回格式匹配 tokenType: 'Bearer', globalToken: true }, }, },
- 修正登录页提交逻辑,使用$auth内置的登录方法发起请求,不要自行封装请求调用登录接口,示例代码:
async handleLoginSubmit() { try { // 调用auth模块内置的local策略登录方法 await this.$auth.loginWith('local', { data: { username: this.loginForm.username, password: this.loginForm.password } }) // 无需手动写跳转逻辑,登录成功后模块会自动跳转至配置的home页 } catch (error) { // 自行处理用户名密码错误等异常场景 console.error('登录失败:', error) } }
- 配置修改完成后重启Nuxt开发服务,清除浏览器本地缓存后再测试:登录成功后可通过控制台执行
$nuxt.$auth.loggedIn验证状态,返回true即代表认证信息存储正常,页面会自动完成跳转。
内容的提问来源于stack exchange,提问作者Loosie94
相关产品推荐
相关产品推荐

