亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Jadual Kandungan
Asas penghalaan
Pengawal Global
Pengawal eksklusif laluan
Pengawal Komponen
Melindungi penghalaan
Struktur penghalaan
Ingat sumbernya
memberitahu
kesimpulannya
Rumah hujung hadapan web tutorial css Melindungi laluan Vue dengan pengawal navigasi

Melindungi laluan Vue dengan pengawal navigasi

Apr 19, 2025 am 10:29 AM

Melindungi laluan Vue dengan pengawal navigasi

Pengesahan keselamatan aplikasi web adalah penting. Ia membolehkan pengalaman diperibadikan, memuat kandungan khusus pengguna (seperti status log masuk), dan juga boleh digunakan untuk menilai kebenaran untuk mengelakkan pengguna yang tidak dibenarkan daripada mengakses maklumat peribadi.

Aplikasi biasanya melindungi kandungan dengan meletakkan kandungan di bawah laluan tertentu dan peraturan pengalihan bangunan, mengarahkan pengguna untuk mengakses atau jauh dari sumber berdasarkan keizinan mereka. Untuk meletakkan kandungan di belakang laluan yang dilindungi, halaman statik bebas perlu dibina. Dengan cara ini, peraturan pengalihan boleh mengendalikan pengalihan dengan betul.

Untuk aplikasi halaman tunggal (SPA) yang dibina dengan rangka kerja depan moden seperti VUE, peraturan redirect tidak boleh digunakan untuk melindungi penghalaan. Kerana semua halaman datang dari satu fail entri, dari sudut pandang penyemak imbas, hanya ada satu halaman: index.html. Di Spa, logik penghalaan biasanya berasal dari fail penghalaan. Artikel ini akan mengkonfigurasi pengesahan di sini. Kami secara khusus akan bergantung kepada pengawal navigasi Vue untuk mengendalikan laluan khusus pengesahan, kerana ini membantu kami mengakses laluan terpilih sebelum laluan dihuraikan sepenuhnya. Mari menggali bagaimana ia berfungsi.

Asas penghalaan

Pengawal Navigasi adalah ciri khusus dalam Vue Router yang menyediakan ciri -ciri tambahan tentang bagaimana penghalaan menyelesaikan. Mereka digunakan terutamanya untuk mengendalikan keadaan ralat dan membimbing pengguna dengan lancar tanpa secara tiba -tiba mengganggu aliran kerja mereka.

Terdapat tiga kategori utama pengawal di Vue Router: Pengawal Global, Pengawal Eksklusif Router dan Pengawal Komponen. Seperti namanya, pengawal global dipanggil apabila mencetuskan sebarang navigasi (iaitu apabila URL berubah), pengawal eksklusif laluan dipanggil apabila memanggil laluan yang berkaitan (iaitu apabila URL sepadan dengan laluan tertentu), dan pengawal komponen dipanggil apabila membuat, mengemas kini, atau memusnahkan komponen di laluan. Dalam setiap kategori, terdapat cara lain untuk memberi anda lebih banyak kawalan berbutir ke atas penghalaan aplikasi. Berikut adalah pecahan cepat semua kaedah yang terdapat dalam setiap pengawal navigasi di Vue Router.

Pengawal Global

  • beforeEach : operasi sebelum memasuki sebarang laluan (skop ini tidak dapat diakses)
  • beforeResolve : Tindakan Sebelum Pengesahan Navigasi, tetapi selepas Pengawal Komponen (Sama seperti sebelum ini, dengan akses ke skop ini)
  • afterEach : Operasi selepas resolusi penghalaan (tidak dapat menjejaskan navigasi)

Pengawal eksklusif laluan

  • beforeEnter : Operasi sebelum memasuki laluan tertentu (tidak seperti pengawal global, pengawal ini dapat mengaksesnya)

Pengawal Komponen

  • beforeRouteEnter : Tindakan dilakukan sebelum pengesahan navigasi dan sebelum penciptaan komponen (ini tidak dapat diakses)
  • beforeRouteUpdate : Operasi yang dilakukan selepas memanggil laluan baru menggunakan komponen yang sama
  • beforeRouteLeave : Operasi sebelum meninggalkan laluan

Melindungi penghalaan

Untuk melaksanakannya dengan berkesan, adalah berguna untuk mengetahui bila menggunakannya dalam mana -mana senario yang diberikan. Sebagai contoh, jika anda ingin menjejaki pandangan halaman untuk analisis, anda mungkin mahu menggunakan Global Aftereach Guard kerana ia dicetuskan selepas laluan dan komponen yang berkaitan dihuraikan sepenuhnya. Jika anda ingin prefetch data ke dalam penyimpanan VUEX sebelum parsing laluan, anda boleh menggunakan Pengawal Eksklusif Laluan Lastin untuk berbuat demikian.

Oleh kerana contoh kami berkaitan dengan melindungi laluan tertentu berdasarkan hak akses pengguna, kami akan menggunakan pengawal komponen, iaitu, cangkuk sebelumnya. Pengawal navigasi ini membolehkan kami mengakses laluan yang betul sebelum parsing selesai; Ini bermakna kita boleh mendapatkan data atau periksa sama ada data dimuatkan sebelum membenarkan pengguna lulus. Sebelum menggali butiran pelaksanaan bagaimana ia berfungsi, mari kita lihat secara ringkas bagaimana cangkuk sebelum ini dimasukkan ke dalam fail penghalaan sedia ada kami. Di bawah ini adalah fail penghalaan sampel kami yang mengandungi laluan yang dilindungi kami, dengan tepat bernama dilindungi. Kami akan menambah cangkuk sebelum ini seperti berikut:

 const router = vuerouter baru ({
  Laluan: [
    …
    {
      Laluan: "/dilindungi",
      Nama: "dilindungi",
      Komponen: Import (/ * WebPackChunkName: "dilindungi" */'./protected.vue'),
      sebelum ini (dari, dari, seterusnya) {
        // logik di sini}
    }
  ]
})

Struktur penghalaan

Struktur sebelum ini tidak berbeza dengan pengawal navigasi lain yang terdapat di Vue Router. Ia menerima tiga parameter: to , laluan "masa depan" yang mana permohonan itu menavigasi; from , laluan "masa lalu/masa lalu" yang mana permohonan itu pergi; next , fungsi yang mesti dipanggil untuk membuat laluan menyelesaikan dengan jayanya.

Umumnya, apabila menggunakan Vue Router, seterusnya dipanggil tanpa sebarang hujah. Walau bagaimanapun, ini menganggap keadaan kejayaan yang kekal. Dalam kes kami, kami ingin memastikan bahawa pengguna yang tidak dibenarkan tidak dapat mengakses sumber yang dilindungi dan terdapat laluan alternatif yang boleh diarahkan dengan betul. Untuk melakukan ini, kami akan lulus parameter ke seterusnya. Untuk melakukan ini, kami akan menggunakan nama laluan untuk menavigasi pengguna, jika mereka tidak dibenarkan, ia kelihatan seperti ini:

 Seterusnya ({
  Nama: "Dashboard"
})

Mari kita anggap dalam contoh kami, kami mempunyai kedai VUEX di mana kami menyimpan token kebenaran pengguna. Untuk memeriksa sama ada pengguna mempunyai kebenaran, kami akan menyemak kedai ini dan gagal dengan sewajarnya atau melalui laluan.

 sebelum ini (dari, dari, seterusnya) {
  // periksa penyimpanan vuex //
  jika (store.getters ["auth/haspermission"]) {
    Seterusnya ()
  } else {
    Seterusnya ({
      Nama: "Dashboard" // Kembali ke Route Secure //
    });
  }
}

Untuk memastikan bahawa peristiwa berlaku secara serentak dan laluan itu tidak dimuatkan sebelum operasi VUEX selesai, mari kita menukar pengawal navigasi untuk menggunakan async/menunggu.

 Async sebelum ini (kepada, dari, seterusnya) {
  Cuba {
    var haspermission = Await Store.disPatch ("Auth/Haspermission");
    jika (haspermission) {
      Seterusnya ()
    }
  } menangkap (e) {
    Seterusnya ({
      Nama: "Dashboard" // Kembali ke Route Secure //
    })
  }
}

Ingat sumbernya

Setakat ini, pengawal navigasi kami telah mencapai tujuan mereka untuk menghalang mereka daripada mengakses sumber yang dilindungi dengan mengalihkan pengguna yang tidak dibenarkan ke mana mereka mungkin dari (iaitu, halaman papan pemuka). Walaupun begitu, aliran kerja sedemikian merosakkan. Oleh kerana pengalihan tidak dijangka, pengguna mungkin berfikir ia adalah ralat pengguna dan cuba mengakses laluan berulang kali, akhirnya berfikir bahawa aplikasi itu rosak. Untuk menyelesaikan masalah ini, mari buat kaedah untuk memberitahu pengguna kapan dan mengapa mereka diarahkan.

Kita boleh melakukan ini dengan lulus parameter pertanyaan ke fungsi seterusnya. Ini membolehkan kita melampirkan laluan sumber yang dilindungi ke URL redirect. Oleh itu, jika anda ingin meminta pengguna untuk log masuk ke aplikasi atau mendapatkan kebenaran yang betul tanpa mengingati di mana mereka berhenti, anda boleh melakukannya. Kami boleh mengakses laluan sumber yang dilindungi melalui objek Laluan yang dihantar ke fungsi sebelumnya, seperti yang ditunjukkan di bawah: to.fullpath.

 Async sebelum ini (kepada, dari, seterusnya) {
  Cuba {
    var haspermission = Await Store.disPatch ("Auth/Haspermission");
    jika (haspermission) {
      Seterusnya ()
    }
  } menangkap (e) {
    Seterusnya ({
      Nama: "Login", // Kembali ke Route Secure //
      pertanyaan: {redirectFrom: to.fullpath}
    })
  }
}

memberitahu

Langkah seterusnya dalam meningkatkan aliran kerja untuk pengguna untuk tidak mempunyai akses kepada laluan yang dilindungi adalah untuk menghantar mesej kepada mereka untuk memberitahu mereka tentang kesilapan dan bagaimana menyelesaikan masalah (dengan log masuk atau mendapatkan kebenaran yang betul). Untuk melakukan ini, kita boleh menggunakan pengawal komponen, terutamanya BeforerouteEnter, untuk memeriksa sama ada pengalihan telah berlaku. Oleh kerana kami lulus laluan redirect sebagai parameter pertanyaan ke fail penghalaan kami, kini kami boleh menyemak objek penghalaan untuk melihat apakah redirect telah berlaku.

 BeForerOuteEnter (kepada, dari, seterusnya) {
  jika (to.query.redirectFrom) {
    // buat sesuatu //
  }
}

Seperti yang saya nyatakan sebelum ini, semua pengawal navigasi mesti memanggil di sebelah untuk membuat penyelesaian laluan. Seperti yang kita lihat sebelum ini, kelebihan fungsi seterusnya ialah kita boleh lulus objek kepadanya. Apa yang anda tidak tahu ialah anda juga boleh mengakses contoh Vue dalam fungsi seterusnya. Wow! Inilah yang kelihatan seperti:

 seterusnya (() => {
  console.log (ini) // ini adalah contoh vue})

Anda mungkin menyedari bahawa apabila menggunakan sebelumnya, anda tidak mengakses skop ini secara teknikal . Walaupun ini mungkin berlaku, anda masih boleh mengakses contoh VUE dengan lulus VM ke fungsi, seperti itu:

 seterusnya (vm => {
  console.log (vm) // ini adalah contoh vue})

Ini amat mudah kerana kini anda boleh dengan mudah membuat dan mengemas kini sifat data dengan betul dengan mesej ralat yang berkaitan tanpa sebarang konfigurasi tambahan. Menggunakan kaedah ini, anda akan mendapat komponen seperti ini:

<template><div>
    {{errormsg}}

    …

  </div>
</template>

<script>
export default {
  name: "Error",
  data() {
    return {
      errorMsg: null
    }
  },
  beforeRouteEnter(to, from, next) {
    if (to.query.redirectFrom) {
      next(vm => {
        vm.errorMsg =
          "對不起,您沒有訪問請求路由的權限"
      })
    } else {
      next()
    }
  }
}
</script>

kesimpulannya

Proses mengintegrasikan pengesahan ke dalam aplikasi anda boleh menjadi rumit. Kami menerangkan bagaimana untuk mencegah pengguna yang tidak dibenarkan daripada mengakses laluan dan bagaimana untuk membina aliran kerja berdasarkan keizinan pengguna untuk mengalihkan pengguna ke atau jauh dari sumber yang dilindungi. Setakat ini, andaian kami adalah bahawa anda telah mengkonfigurasi pengesahan dalam permohonan anda. Sekiranya anda belum mengkonfigurasinya, dan anda ingin mendapatkannya dan berjalan dengan cepat, saya sangat mengesyorkan menggunakan pengesahan sebagai perkhidmatan. Terdapat beberapa penyedia seperti widget pengesahan Netlify atau kunci Auth0.

Atas ialah kandungan terperinci Melindungi laluan Vue dengan pengawal navigasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1488
72
Tutorial CSS untuk membuat pemuatan dan animasi pemuatan Tutorial CSS untuk membuat pemuatan dan animasi pemuatan Jul 07, 2025 am 12:07 AM

Terdapat tiga cara untuk membuat pemutar pemuatan CSS: 1. Gunakan pemutar asas sempadan untuk mencapai animasi mudah melalui HTML dan CSS; 2. Gunakan pemutar tersuai pelbagai mata untuk mencapai kesan lompat melalui masa kelewatan yang berlainan; 3. Tambahkan pemutar dalam butang dan beralih kelas melalui JavaScript untuk memaparkan status pemuatan. Setiap pendekatan menekankan pentingnya butiran reka bentuk seperti warna, saiz, kebolehcapaian dan pengoptimuman prestasi untuk meningkatkan pengalaman pengguna.

Menangani masalah dan awalan keserasian penyemak imbas CSS Menangani masalah dan awalan keserasian penyemak imbas CSS Jul 07, 2025 am 01:44 AM

Untuk menangani keserasian pelayar CSS dan isu awalan, anda perlu memahami perbezaan sokongan penyemak imbas dan menggunakan awalan vendor dengan munasabah. 1. Memahami masalah biasa seperti Flexbox dan sokongan grid, kedudukan: prestasi tidak sah, dan prestasi animasi adalah berbeza; 2. Periksa status sokongan ciri CANIUSE Ciri; 3. Gunakan dengan betul -webkit-, -moz-, -ms-, -o- dan awalan pengeluar lain; 4. Adalah disyorkan untuk menggunakan autoprefixer untuk menambah awalan secara automatik; 5. Pasang postcss dan konfigurasi penyemak imbas untuk menentukan penyemak imbas sasaran; 6. Secara automatik mengendalikan keserasian semasa pembinaan; 7. Ciri -ciri pengesanan moden boleh digunakan untuk projek lama; 8. Tidak perlu meneruskan konsistensi semua pelayar,

Apakah perbezaan antara paparan: inline, paparan: blok, dan paparan: blok sebaris? Apakah perbezaan antara paparan: inline, paparan: blok, dan paparan: blok sebaris? Jul 11, 2025 am 03:25 AM

Themaindifferencesbetweendisplay: inline, block, andinline-blockinhtml/cssarelayoutbehavior, spaceusage, andstylingcontrol.1.inlineelementsflowwithtext, notstartonNewlines, abaikanwidth/height, andonyapplylylylylylinddding/

Membuat bentuk tersuai dengan laluan klip CSS Membuat bentuk tersuai dengan laluan klip CSS Jul 09, 2025 am 01:29 AM

Gunakan atribut clip-path CSS untuk menanam unsur-unsur ke dalam bentuk tersuai, seperti segitiga, takik bulat, poligon, dan lain-lain, tanpa bergantung pada gambar atau SVG. Kelebihannya termasuk: 1. Menyokong pelbagai bentuk asas seperti Circle, Ellipse, Polygon, dan lain -lain; 2. Pelarasan responsif dan boleh disesuaikan dengan terminal mudah alih; 3. Mudah untuk animasi, dan boleh digabungkan dengan hover atau javascript untuk mencapai kesan dinamik; 4. Ia tidak menjejaskan aliran susun atur, dan hanya tanaman kawasan paparan. Penggunaan umum adalah seperti laluan klip bulat: bulatan (50pxatcenter) dan triangle clip-path: polygon (50%0%, 100 0%, 0 0%). Notis

Gaya yang dikunjungi pautan berbeza dengan CSS Gaya yang dikunjungi pautan berbeza dengan CSS Jul 11, 2025 am 03:26 AM

Menetapkan gaya pautan yang telah anda lawati dapat meningkatkan pengalaman pengguna, terutama di laman web yang berintensifkan kandungan untuk membantu pengguna menavigasi lebih baik. 1. Gunakan CSS: Kelas pseudo yang dilawati untuk menentukan gaya pautan yang dikunjungi, seperti perubahan warna; 2. Perhatikan bahawa penyemak imbas hanya membenarkan pengubahsuaian beberapa atribut disebabkan oleh sekatan privasi; 3. Pemilihan warna harus diselaraskan dengan gaya keseluruhan untuk mengelakkan ketangkasan; 4. Terminal mudah alih mungkin tidak memaparkan kesan ini, dan disyorkan untuk menggabungkannya dengan arahan visual lain seperti logo tambahan ikon.

Bagaimana untuk membuat imej responsif menggunakan CSS? Bagaimana untuk membuat imej responsif menggunakan CSS? Jul 15, 2025 am 01:10 AM

Untuk membuat imej responsif menggunakan CSS, ia boleh dicapai terutamanya melalui kaedah berikut: 1. Gunakan maksimum lebar: 100% dan ketinggian: auto untuk membolehkan imej menyesuaikan diri dengan lebar kontena sambil mengekalkan perkadaran; 2. Gunakan atribut SRCSET dan saiz HTML dengan bijak memuatkan sumber imej yang disesuaikan dengan skrin yang berbeza; 3. Gunakan objek-sesuai dan kedudukan objek untuk mengawal penanaman imej dan paparan fokus. Bersama -sama, kaedah ini memastikan bahawa imej dibentangkan dengan jelas dan indah pada peranti yang berbeza.

Apakah ketidakkonsistenan penyemak imbas CSS biasa? Apakah ketidakkonsistenan penyemak imbas CSS biasa? Jul 26, 2025 am 07:04 AM

Penyemak imbas yang berbeza mempunyai perbezaan dalam parsing CSS, mengakibatkan kesan paparan yang tidak konsisten, terutamanya termasuk perbezaan gaya lalai, kaedah pengiraan model kotak, flexbox dan tahap sokongan susun atur grid, dan tingkah laku yang tidak konsisten bagi atribut CSS tertentu. 1. Pemprosesan gaya lalai tidak konsisten. Penyelesaiannya adalah menggunakan cssreset atau normalisasi.css untuk menyatukan gaya awal; 2. Kaedah pengiraan model kotak versi lama IE adalah berbeza. Adalah disyorkan untuk menggunakan kotak-kotak: kotak sempadan dengan cara yang bersatu; 3. Flexbox dan grid melakukan secara berbeza dalam kes kelebihan atau dalam versi lama. Lebih banyak ujian dan gunakan autoprefixer; 4. Beberapa tingkah laku atribut CSS tidak konsisten. CANIUSE mesti dirujuk dan diturunkan.

Unit CSS Demystifying: PX, EM, REM, VW, VH Perbandingan Unit CSS Demystifying: PX, EM, REM, VW, VH Perbandingan Jul 08, 2025 am 02:16 AM

Pilihan unit CSS bergantung kepada keperluan reka bentuk dan keperluan responsif. 1.PX digunakan untuk saiz tetap, sesuai untuk kawalan yang tepat tetapi kekurangan keanjalan; 2.EM adalah unit relatif, yang mudah disebabkan oleh pengaruh unsur induk, sementara REM lebih stabil berdasarkan unsur akar dan sesuai untuk skala global; 3.VW/VH didasarkan pada saiz viewport, sesuai untuk reka bentuk yang responsif, tetapi perhatian harus dibayar kepada prestasi di bawah skrin yang melampau; 4. Apabila memilih, ia harus ditentukan berdasarkan sama ada pelarasan responsif, hubungan hierarki elemen dan ketergantungan viewport. Penggunaan yang munasabah boleh meningkatkan fleksibiliti dan penyelenggaraan susun atur.

See all articles