Vue路由器Auth Guard url额外字符

时间:2019-12-04 00:52:25

标签: vue.js

我正在将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

1 个答案:

答案 0 :(得分:1)

当用户未登录时,路由器防护将重定向到path: '/', query: {redirect: to.fullPath}。此时to.fullPath == "/dashboard"

反斜杠'/'字符不是有效的查询字符,因此vue-router使用%2F将其转换为编码版本encodeURIComponent("/dashboard")

用户登录后,您可以从$route.query.redirect获取重定向参数,它将被自动解码回/dashboard

或者,由于所有路由都具有名称,因此可以将其设置为redirect,而不是将to.fullPath参数设置为to.name,然后在用户登录时进行重定向到该路线的名称。