Projek dipisahkan dari hadapan ke belakang hanya menyediakan antara muka ke bahagian hadapan, dan setiap antara muka mempunyai token. Kini terdapat beberapa halaman yang memerlukan log masuk 前端如何拦截
。比如:由A页面
通过A标签跳转到 B页面
(B页面需要登录才能进去)。我现在做法是进到B页面,发送ajax请求
Latar belakang mengembalikan status sebelum melompat ke halaman log masuk. Masalahnya sekarang ialah saya telah memasuki B Adalah tidak munasabah untuk membuat pertimbangan hanya berdasarkan halaman.
Anda boleh mempertimbangkan untuk menghantar permintaan ajax terlebih dahulu apabila mengklik pada teg dan kemudian memutuskan tempat untuk melompat?
Anda boleh merangkum permintaan ajax sendiri, menilai status log masuk secara berasingan, melompat untuk log masuk jika anda tidak log masuk, dan mengembalikan data terus selepas log masuk
Tulis js awam, tulis fungsi pemuatan halaman di dalamnya, rujuk halaman yang anda perlukan kebenaran log masuk untuk mengakses, dan kemudian tulis pertimbangan logik di dalamnya
Bahagian depan tidak memintas, pelayan melakukan pemintasan. Untuk pemintasan bahagian hadapan, ia hanya boleh dilakukan pada halaman B. Pernahkah anda mempertimbangkan mengeja URL untuk dimasukkan? Antara muka akses halaman B cuba mendapatkan maklumat pengguna Jika anda mendapatnya, anda telah log masuk. Jika anda tidak mendapatnya, anda tidak log masuk.
Token secara amnya mempunyai masa tamat tempoh Apabila menyimpan token dalam storan setempat, bawa masa tamat tempoh, mula-mula tentukan sama ada token
telah tamat tempoh, ia akan melompat ke halaman log masuk.
Jika ia adalah aplikasi satu halaman, ini mudah diselesaikan Jika ia bukan aplikasi satu halaman, tulis sahaja dalam js awam.
Pengguna pasti akan melompat ke halaman kedua kerana beberapa tindakan interaktif pengesahan log masuk akan dilakukan sebelum melompat jika mereka tidak log masuk, mereka akan diminta untuk log masuk (pendaftaran). encapsulated. Tempah panggilan balik yang berjaya selepas log masuk dan panggilan balik selepas pendaftaran berjaya, kemudian lompat ke halaman B dalam fungsi panggil balik
Terdapat dua cara untuk menyelesaikan masalah ini:
1 Pelayan melakukan pengesahan kerana ia adalah halaman yang memerlukan log masuk untuk masuk, yang pasti akan melibatkan kebenaran pengguna Terdapat token dalam permintaan ajax yang dihantar oleh halaman B backend melakukan pengesahan tamat tempoh token untuk menentukan sama ada terdapat kebenaran Apabila ralat dilaporkan, kembali ke bahagian hadapan dan tulis kaedah awam untuk mengesahkan mesej ralat tanpa kebenaran (kaedah ini harus lebih selamat pada antara muka respons)
2 bahagian hadapan menulis js pengawas pada setiap halaman untuk menentukan tamat tempoh maklumat pengguna yang disimpan.
Saya rasa permintaan poster adalah untuk menentukan sama ada untuk melompat apabila mengklik Anda boleh menukar teg kepada fungsi klik dan menilai dalam fungsi untuk melompat ke halaman menggunakan window.location.href = url
.Untuk apa rangka kerja bahagian hadapan lz
Saya tahu terdapat fungsi cangkuk dalam vue_router yang boleh dilaksanakan Dalam router.beforeEach, ia dinilai sama ada untuk log masuk. Jika tidak, log masuk , hanya seterusnya()