简体   繁体   English

用户使用令牌认证登录后如何隐藏登录路径导航元素?

[英]How to hide login route navigation element after user has logged in using token authentication?

On login, I save the token in the local storage using localStorage.setItem('token', token); 登录时,我使用localStorage.setItem('token', token);将令牌保存在本地存储中localStorage.setItem('token', token); but now I would like to hide the navigation elements that leads to the login and signup routes. 但现在我想隐藏导致登录和注册路线的导航元素。 These are my routes: 这些是我的路线:

<template>
    <div class="nav-header">
        <div class="wrapper">
            <ul class='nav-ul'>
                <router-link to="/" tag='li' active-class='active' exact><li><a>Home</a></li></router-link>
                <router-link to="/signup" tag='li' active-class='active' exact><li><a>Sign Up</a></li></router-link>
                <router-link to="/signin" tag='li' active-class='active' exact><li><a>Sign In</a></li></router-link>
            </ul>
        </div>
    </div>
</template>

I assume I need to check if I have a stored token in my local storage and hide the routes if I do. 我假设我需要检查本地存储中是否存储了令牌,如果有的话,请隐藏路由。 Any tips and pointers would be greatly appreciated. 任何提示和指示,将不胜感激。

You can define a computed property in your component, for example, isLoggedIn which returns a boolean value. 您可以在组件中定义一个computed属性,例如isLoggedIn ,它返回一个boolean值。

computed: {
  isLoggedIn() {
    return !!window.localStorage.getItem('token')
  }
}

You can then use the v-if directive in the routes that you want to hide. 然后,可以在要隐藏的路由中使用v-if指令。

<template>
    <div class="nav-header">
        <div class="wrapper">
            <ul class='nav-ul'>
                <router-link to="/" tag='li' active-class='active' exact><li><a>Home</a></li></router-link>
                <router-link to="/signup" v-if="!isLoggedIn" tag='li' active-class='active' exact><li><a>Sign Up</a></li></router-link>
                <router-link to="/signin" v-if="!isLoggedIn" tag='li' active-class='active' exact><li><a>Sign In</a></li></router-link>
            </ul>
        </div>
    </div>
</template>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Vue/Vuex - 如何在路由更改后以用户身份保持登录状态 - Vue/Vuex - how to stay logged in as a user after route change 用户登录后如何隐藏模式框 - How to Hide Modal Box After User Login 如何防止用户在登录Vuejs后转到登录页面? - How to prevent user to go to login page after logged in in Vuejs? Laravel Vue JWT 身份验证 - 如何在登录后自动登录用户 - Laravel Vue JWT Authentication - How to automatically login the user after login 如果用户已经使用 Vue 和 Firebase 身份验证登录,如何自动重定向用户? - How do I automatically redirect the user if they are already logged in using Vue and Firebase authentication? Vue + Firebase 路由防止用户在登录后返回登录页面 - Vue + Firebase route to prevent user back to login page after login 如何在用户登录时在导航栏中进行更改? - How to make changes in navigation bar when a user gets logged in? 登录后如何从客户端的回送令牌中获取用户信息(角色) - How to get user info (role) from loopback token from client after login 用户登录时如何禁用对登录和注册页面的访问? - How to disable access to login and signup page when user is logged in? 登录后如何无法手动访问 /login - VueJS? - How to not be able to access manually /login after you logged in - VueJS?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM