在nuxt的middleware中使用redirect问题

nuxt的middleware会被用来处理页面加载前的一些逻辑,比如该页面需要用户登录,会在middleware中判断,需要时跳转登录页。

export default async function ({ app , req , redirect , route }){
  let token = app.$cookies.cookies && app.$cookies.cookies.token ? app.$cookies.cookies.token : null
  let path = process.server ? req.path : route.path
  if ( path ) {
    redirect({ path: '//m.xxx.com/account/register' })
  }
}

如果从服务端走这段代码,很顺利。但是走客户端时,会闪过一个500报错页面,再重定向到指定页面。
经调查好像也是nuxt的一个bug,如果跳转nuxt项目中的页面path没事,但是跳外站点则会出现这个现象。
考虑临时解决方案是在上一个页面时就判断token值,如果有使用路由跳转,没有则使用window.location.href进入下一个页面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。