ホームページ >ウェブフロントエンド >jsチュートリアル >vueログインルート検証の実装方法

vueログインルート検証の実装方法

小云云
小云云オリジナル
2018-05-15 14:45:143059ブラウズ

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 でのルート検証と対応するインターセプトの使用方法の詳細な説明

PHP フレームワークのシンプルなルーター

Vue.js を構築するときにルーティング エラーを解決するにはどうすればよいですか?

以上がvueログインルート検証の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。