我的 vue 路由器中有这条路由.js文件.
routes: [{
path: "/",
component: Home,
beforeEnter: (to, from, next) => {
if (!store.state.is_login) {
next('/login')
}
next()
}
}]
我使用 beforeEnter 选项重定向用户,如果store.state.is_login === true
第一个问题:所以当我在浏览器中输入网址时,我会重定向到/登录页面。这很好。但是当我单击徽标按钮时,这个beforeEnter功能不起作用。这是我的按钮,使用:
<router-link to="/" class="bp-logo"><Logo />home</router-link>
第二个问题是:
问题:
条件1:如果!is_login重定向到 /login。
条件2:如果令牌存在!is_login=
条件3:如果!is_登录
我不知何故想通了。第一个问题是当你渲染一个路由时,你被点击再次到达该路由的功能路由器。之前每个不触发。所以我在文档中找到了另一种方法。
routes: [{
path: "/",
component: Home,
beforeEnter: isAuthenticated,
}]
这是我处理这两个问题的自定义函数。
const isAuthenticated = (to, from, next) => {
if (!store.state.is_login) {
if ((localStorage.getItem('token')) && (lodash.isEmpty(store.state.user))) {
let headers = {
headers: {
Authorization: localStorage.getItem("token"),
"Access-Control-Allow-Origin": "*"
}
};
axios
.get(`${store.state.api}admin/user`, headers)
.then(response => {
store.state.user = response.data.user;
store.state.is_login = true;
next("/");
})
.catch(error => {
store.state.Error = error;
next('/login')
});
}
next('/login')
return
}
next()
return
}
您需要更改您的befor起初
方法来访问存储实例。像这样重写:
beforeEnter: (to, from, next) => {
if (!this.$store.state.is_login) {
next('/login')
}
next()
}
根据React Router给出的示例,我正在尝试创建一个受保护的路由,当用户未被授权使用Find Router for Relay Modern时,该路由将重定向到: 我用真实的登录逻辑替换了fakeAuth,但其余的都是一样的。这条路线就是不渲染。 发现路由器似乎是轻的例子围绕这个特定的问题。有什么想法吗?
英文原文:http://emberjs.com/guides/routing/redirection/ 过渡与重定向 在路由中调用transitionTo或者在控制器中调用transitionToRoute,将停止当前正在进行的过渡,并开启一个新的,这也用作重定向。transitionTo具有参数,其行为与link-to助手相同。 如果过渡到一个没有动态段的路由,路由的model钩子始终都会运行。
在< code>/users下,我有一些需要身份验证令牌的路由,还有一些不需要。为了实现这一点,我做了以下工作。 然后我按照以下方式安装这些路线。 当我向< code>/users发送POST时,它运行预期的路径,但是当< code>next()被调用时,< code > protected _ middleware 运行。这是因为它在标有“D”的行中找到了下一个< code>/users定义。
我一直试图做一个简单的重定向到按钮点击的另一个组件,但由于某种原因,它不起作用。我想重定向到/dashboard并从登录显示AdminServices,如下所示: //索引。js //应用程序。js //登录。js //管理服务。js
当我们想要通知客户端应用程序已移动此URL时,重定向路由非常有用。 可以使用以下函数重定向URL。 static Cake\Routing\Router::redirect($route, $url, $options =[]) 上述功能有三个参数 - 描述路径模板的字符串。 要重定向到的URL。 一个数组,它将路径中的命名元素与该元素应匹配的正则表达式相匹配。 例子 (Example) 在co