Vue プロジェクトのログイン ステータスが vuex status を使用して管理されている場合、vuex で管理されているステータスはページを更新するとすぐに消えてしまい、ログイン ルーティングの検証が無意味になります。ストレージ管理のために、ログイン ステータスを Web ストレージに書き込むことができます。この記事では主に Vue のログイン ルーティング検証の実装について詳しく紹介しますので、興味のある方は参考にしていただければ幸いです。
手順は次のとおりです:
1. ログインコンポーネントで、ログインステータスを Web ストレージに書き込みます。 (通常はセッションストレージに書き込まれ、セッションは閉じられ、保存されたデータは自動的に削除されます)
if('登录成功') {sessionStorage.setItem('accessToken' , 写入登录成功返回的登录令牌或者自定义的判断字符串) }
2. ログイン認証が必要なルーティングメタ情報にログイン認証識別子requiresAuth(カスタマイズ)を追加します
[html] view plain copy
routers: [ { path: '/listInfo', name: 'listInfo', component: listInfo, meta: { requiresAuth: true } } ]
3. ページがグローバル フック関数 beforeEach でログインを必要とするかどうかを確認します。
router.beforeEach((to, from, next) => { //to即将进入的目标路由对象,from当前导航正要离开的路由, next : 下一步执行的函数钩子 if(to.path === '/login') { next() } // 如果即将进入登录路由,则直接放行 else { //进入的不是登录路由 if(to.meta.requiresAuth && !sessionStorage.getItem('accessToken')) {next({ path: '/login' })} //下一跳路由需要登录验证,并且还未登录,则路由定向到 登录路由 else { next() }} //如果不需要登录验证,或者已经登录成功,则直接放行 }
注: グローバル フック beforeEach は、グローバル コンポーネントの前に配置され、Vue インスタンスがロードされている必要があります。このとき、ブラウザのアドレスバーに行きたいルートを直接入力すると、ログインルートには誘導されません。
関連する推奨事項:
Vue でのルート検証と対応するインターセプトの使用方法の詳細な説明
Vue.js を構築するときにルーティング エラーを解決するにはどうすればよいですか?
以上がvueログインルート検証の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。