当用户被重定向到一个定义的重定向路径(登录、主目录等)时,查询参数不会被删除。
例如-用户没有登录,并试图打开一些受保护的页面example.com/some-protected-page?test=query
。然后用户将被重定向到登录页面。完整的路径将是example.com/sign-in?test=query
,但我希望它是example.com/sign-in
,即没有查询参数。
我知道我可以实现一个中间件来检查路由和清除参数,如果需要的话。但是我想知道有没有更优雅的方法来做到这一点。
下面是我的配置:
auth: {
cookie: {
options: {
expires: 365,
secure: process.env.NODE_ENV === 'production',
},
},
strategies: {
sign_up: {
scheme: 'local',
token: {
property: 'apiKey.accessToken',
global: true,
maxAge: 60 * 60 * 24 * 30,
},
user: {
property: '',
autoFetch: true,
},
endpoints: {
login: { url: '/ActivateUser', method: 'post' },
logout: { url: '/SignOut', method: 'post' },
user: { url: '/GetCurrentUser', method: 'post' },
},
},
local: {
scheme: 'local',
token: {
property: 'apiKey.accessToken',
global: true,
maxAge: 60 * 60 * 24 * 30,
},
user: {
property: '',
autoFetch: true,
},
endpoints: {
login: { url: '/SignIn', method: 'post' },
logout: { url: '/SignOut', method: 'post' },
user: { url: '/GetCurrentUser', method: 'post' },
},
},
},
redirect: {
login: '/sign-in',
logout: '/sign-in',
home: '/projects',
callback: '/sign-in',
},
localStorage: false,
resetOnError: true,
fullPathRedirect: true,
rewriteRedirects: false,
},
1条答案
按热度按时间hmtdttj41#
我有一个类似的情况,使用nuxt/auth.当我点击注销按钮,我被重定向到登录页面,但保留查询参数从上一页.像你一样,我想有它干净.
其思想是清除查询对象中的值。
这将清除参数,然后重定向到登录页面。
例如:如果我们得到的url是
https://myApp/hello?test=here
thethis.$router.replace({ query: [] })
,将其转换为https://myApp/hello
,然后nuxt/auth注销并重定向到我的登录页面。你可以从这篇文章中检查与vue-router相关的答案。我从这里How to remove query from vue router?
如果用户试图访问一个受保护的页面,就像你提到的,我认为最好的方法是使用中间件,而不是这种方式。
希望这能有所帮助!