我正在将Vue路由Auth Guard与Each函数一起使用。如果用户未登录,则他将无法访问仪表板和个人资料页面。它工作正常,但是当我尝试强制路由时,它会阻止我,但还会在url中添加一些额外的字符。我可以删除那些吗?
url-http://localhost:8080/?redirect=%2Fdashboard
case "$filename" in
*.tar.gz)
tar something
dirname=$(basename "$filename" .tar.gz)
;;
*.tar.bz2)
tar something
dirname=$(basename "$filename" .tar.gz2)
;;
# and so on
esac
答案 0 :(得分:1)
当用户未登录时,路由器防护将重定向到path: '/', query: {redirect: to.fullPath}
。此时to.fullPath == "/dashboard"
。
反斜杠'/'
字符不是有效的查询字符,因此vue-router使用%2F
将其转换为编码版本encodeURIComponent("/dashboard")
。
用户登录后,您可以从$route.query.redirect
获取重定向参数,它将被自动解码回/dashboard
。
或者,由于所有路由都具有名称,因此可以将其设置为redirect
,而不是将to.fullPath
参数设置为to.name
,然后在用户登录时进行重定向到该路线的名称。