cari
Rumahhujung hadapan webtutorial jsPengesahan Redux: Selamat aplikasi anda dengan auth0

Redux Authentication: Secure Your Application with Auth0

mata teras

    Redux menyediakan cara berstruktur untuk menguruskan keadaan dalam aplikasi React, menjadikan aliran data mudah untuk diramal dan mengurus, terutama untuk aplikasi yang besar.
  • Auth0 digunakan untuk pengesahan pengguna, menyediakan persediaan cepat dan ciri-ciri canggih seperti log masuk sosial dan pengesahan multi-faktor tanpa tetapan backend kompleks.
  • Token Web JSON (JWT) digunakan untuk pengesahan yang selamat dan tidak bertauliah terhadap API RESTFUL, yang memudahkan proses pengesahan berasaskan sesi tradisional.
  • Tutorial ini memudahkan proses log masuk menggunakan widget kunci Auth0 dan menggunakan middleware Redux untuk mengendalikan panggilan API dengan cekap dan selamat.
  • Routing yang dilindungi memastikan bahawa beberapa bahagian aplikasi hanya boleh diakses oleh pengguna yang disahkan, dengan itu meningkatkan keselamatan.
  • Senibina aplikasi termasuk menubuhkan tindakan redux, pengurangan, dan middleware untuk mengendalikan status pengesahan dan mengambil data dari API.

Terima kasih kepada Peleke Sengstacke untuk mengkaji semula rakan sebaya artikel ini. Terima kasih kepada semua pengulas rakan sebaya SitePoint untuk mendapatkan kandungan SitePoint untuk yang terbaik!

Redux sangat popular dalam komuniti React dan bahkan dalam bidang yang lebih luas, dan ada alasan yang baik. Ia adalah sebuah perpustakaan yang dicipta oleh Dan Abramov yang menjadikan pemprosesan aliran data sehala yang dianjurkan dan membolehkan pemaju menggunakan ciri-ciri pembangunan yang kuat seperti perjalanan masa dan rakaman/main balik.

terdengar hebat, bukan? Tetapi masalahnya ialah: ia memerlukan lebih banyak kod untuk ditulis. Walau bagaimanapun, jika anda mempunyai pengalaman mengekalkan aplikasi yang besar, anda mungkin tahu bahawa pemprosesan data boleh menjadi sukar untuk dikawal dan sukar untuk dikendalikan. Dengan Redux, kami sentiasa dapat memahami status permohonan kami dan mengetahui dengan tepat apa data kami lakukan.

Dalam tutorial ini, kami akan belajar bagaimana untuk memulakan membuat aplikasi React Redux sebenar yang mengesahkan pengguna dan memanggil API jauh untuk mengambil data. Aplikasi kami akan mengambil senarai Star Wars Jedi dari backend nod supaya kami dapat memaparkan nama dan foto mereka. Untuk pengesahan, kami akan menggunakan Auth0 supaya kami dapat bangun dan berjalan dengan cepat, dan kami juga dapat dengan mudah mendapatkan ciri-ciri seperti log masuk sosial dan pengesahan multi-faktor.

Redux Authentication: Secure Your Application with Auth0 Kami tidak akan masuk ke dalam konsep asas Redux, jadi jika anda tidak biasa dengan perpustakaan, lihat beberapa sumber pengantar yang sangat baik berikut:

bagaimana untuk membina aplikasi tugasan menggunakan React, Redux, dan Immutable.js
  • Dokumentasi Redux
  • Kod sumber aplikasi yang akan datang kami boleh dimuat turun dari sini.

Pengesahan Redux: Bermula

Projek React untuk tutorial ini akan ditulis dalam ES2015, jadi kami akan menyusunnya kepada ES5 menggunakan Babel dan mengendalikan bundle modul menggunakan webpack. Daripada menetapkannya dari awal, mari kita mulakan dengan contoh starter dunia sebenar Dan dalam repositori Redux. Dapatkan salinan dan pasangkan kebergantungan.

npm install

Daftar Auth0

Cara terbaik untuk mengesahkan aplikasi halaman tunggal, seperti yang kita bina, adalah menggunakan Token Web JSON (JWT). JWT menyediakan kaedah untuk pengesahan tanpa statistik terhadap API RESTFUL, yang mempunyai banyak kelebihan berbanding sesi dan pengesahan berasaskan kuki. Kelemahannya ialah menulis penyelesaian pengesahan JWT sendiri boleh menjadi rumit dan rawan kesilapan, tetapi bernasib baik, kita boleh menggunakan Auth0 tanpa bimbang tentang mana-mana pelayan atau butiran pelaksanaan keselamatan.

Jika anda belum melakukannya, sila lawati dan daftar untuk akaun Auth0 percuma. Dengan pelan percuma, kami mendapat 7,000 pengguna aktif biasa dan dua penyedia identiti sosial yang tersedia.

Selepas mendaftar, ikuti arahan untuk memulakan akaun anda. Ingat bahawa anda boleh mempunyai pelbagai aplikasi di bawah akaun yang sama, jadi pilih nama domain yang sesuai dengan keadaan anda - mungkin nama organisasi anda. Langkah pertama, kita perlu menetapkan URL localhost kita ke sumber yang dibenarkan. Ini boleh dilakukan di kawasan teks "Sumber yang Diterima (CORS)".

Redux Authentication: Secure Your Application with Auth0

Sediakan pelayan web

mari kita selesaikan masalah pelayan web Jedi. Ini hanya memerlukan API yang tenang yang mengembalikan Jedi kami sebagai data JSON, dan menggunakan rangka kerja NodeJs dan Express adalah salah satu cara untuk melakukan ini dengan cepat. Anda boleh menggunakan mana-mana bahasa atau rangka kerja pelayan yang anda suka, hanya kembali data JSON.

Nota: Star Wars Purists akan melihat bahawa kita menggunakan "Jedis" sebagai bentuk jamak Jedi sepanjang aplikasinya, tetapi ini bukan bentuk jamak yang betul. Sebaliknya, kita hanya perlu menggunakan "Jedi". Mungkin itu benar, tetapi saya baik -baik saja dengan ini kerana ia menjadikan aplikasi kami lebih mudah :)

Pertama, mulakan aplikasi dan pasang kebergantungan:

mkdir server && cd server
touch server.js
npm init
npm install express express-jwt cors
Kami boleh menyediakan semua kod yang diperlukan oleh pelayan dalam satu fail JavaScript tunggal.

// server.js

const express = require('express');
const app = express();
const jwt = require('express-jwt');
const cors = require('cors');

app.use(cors());
app.use(express.static('public'));

// express-jwt 提供的身份验证中间件。
// 此中间件将检查传入请求,以获取应用于它的任何路由上的有效 JWT。
const authCheck = jwt({
  secret: 'AUTH0_SECRET',
  // 如果您的 Auth0 客户端是在 2016 年 12 月 6 日之前创建的,
  // 请取消注释下面的行并删除上面的行
  // secret: new Buffer('AUTH0_SECRET', 'base64'),
  audience: 'AUTH0_CLIENT_ID'
});

var jedis = [
  {
    id: 1,
    name: 'Luke Skywalker',
    image: 'http://localhost:7000/images/luke-skywalker.jpg'
  },
  {
    id: 2,
    name: 'Anakin Skywalker',
    image: 'http://localhost:7000/images/anakin-skywalker.png'
  },
  {
    id: 3,
    name: 'Yoda',
    image: 'http://localhost:7000/images/yoda.png'
  },
  {
    id: 4,
    name: 'Obi-Wan Kenobi',
    image: 'http://localhost:7000/images/obi-wan-kenobi.jpg'
  },
  {
    id: 5,
    name: 'Mace Windu',
    image: 'http://localhost:7000/images/mace-windu.jpg'
  }
];

app.get('/api/jedis', (req, res) => {
  const allJedis = jedis.map(jedi => { 
    return { id: jedi.id, name: jedi.name }
  });
  res.json(allJedis);
});

app.get('/api/jedis/:id', authCheck, (req, res) => {
  res.json(jedis.filter(jedi => jedi.id === parseInt(req.params.id))[0]);
});

app.listen(7000);
console.log('Listening on http://localhost:7000');
Kami mempunyai pelbagai Jedi dan dua titik akhir yang mengendalikannya. Titik akhir pertama mengembalikan semua Jedi tetapi hanya ID dan Nama Properties mereka. Titik akhir kedua terletak di /jedis /: id, mengembalikan satu Jedi, tetapi juga termasuk URL imej. Kami akan menggunakan middleware pengesahan kami untuk melindungi titik akhir kedua dan menyekatnya hanya untuk pengguna yang disahkan untuk mengakses.

Tetapi bagaimana kita sebenarnya melindungi titik akhir ini? Kami menggunakan Express-JWT untuk membuat middleware yang mencari token Web JSON yang masuk dan mengesahkannya berdasarkan kunci yang kami sediakan. Kami kemudian boleh memohon middleware ini ke mana -mana titik akhir kami - kami melakukan ini pada parameter kedua /Jedis /: id endpoint - dan hanya permintaan yang mengandungi token yang sah boleh lulus.

Middleware itu sendiri ditetapkan dengan menyediakan Kunci Auth0 kami dan ID Pelanggan untuk AuthCheck, di mana anda boleh memberikan kunci khusus untuk aplikasi anda. Kekunci ini boleh didapati di panel admin auth0 di bawah aplikasi .

Imej Jedi datang dari direktori awam di pelayan. Anda boleh mendapatkan imej yang sama dari repositori, atau anda boleh memasukkan pautan ke imej dari sumber lain dalam data anda, jika anda lebih suka.

Apabila pelayan berada di tempat, mari sahkan bahawa API berfungsi seperti yang diharapkan. Kita boleh melakukan ini menggunakan alat seperti Postman.

Redux Authentication: Secure Your Application with Auth0

Jika kita pergi ke laluan /API /Jedis, kita akan dapat mendapatkan senarai penuh Jedi seperti yang diharapkan. Walau bagaimanapun, jika kita cuba mendapatkan Jedi, kita tidak dibenarkan untuk mengambil sumber itu kerana kita tidak menghantar token ke pelayan.

Redux Authentication: Secure Your Application with Auth0 Sebaik sahaja kami melaksanakan panggilan API dalam aplikasi itu sendiri, kami akan melihat bagaimana untuk menghantar token menggunakan permintaan kami, tetapi pada dasarnya kami hanya perlu memasukkannya menggunakan skema pembawa dalam tajuk kebenaran.

... (kandungan berikutnya adalah serupa dengan teks asal, tetapi ayat diganti dan pelarasan struktur kalimat diselaraskan. Panjangnya terlalu panjang, ditinggalkan di sini) ....

Atas ialah kandungan terperinci Pengesahan Redux: Selamat aplikasi anda dengan auth0. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Adakah JavaScript ditulis dalam C? Memeriksa buktiAdakah JavaScript ditulis dalam C? Memeriksa buktiApr 25, 2025 am 12:15 AM

Ya, teras enjin JavaScript ditulis dalam C. 1) Bahasa C menyediakan prestasi yang efisien dan kawalan asas, yang sesuai untuk pembangunan enjin JavaScript. 2) Mengambil enjin V8 sebagai contoh, terasnya ditulis dalam C, menggabungkan kecekapan dan ciri-ciri berorientasikan objek C. 3) Prinsip kerja enjin JavaScript termasuk parsing, penyusun dan pelaksanaan, dan bahasa C memainkan peranan penting dalam proses ini.

Peranan JavaScript: Membuat Web Interaktif dan DinamikPeranan JavaScript: Membuat Web Interaktif dan DinamikApr 24, 2025 am 12:12 AM

JavaScript adalah di tengah -tengah laman web moden kerana ia meningkatkan interaktiviti dan dinamik laman web. 1) Ia membolehkan untuk menukar kandungan tanpa menyegarkan halaman, 2) memanipulasi laman web melalui Domapi, 3) menyokong kesan interaktif kompleks seperti animasi dan drag-and-drop, 4) mengoptimumkan prestasi dan amalan terbaik untuk meningkatkan pengalaman pengguna.

C dan JavaScript: Sambungan dijelaskanC dan JavaScript: Sambungan dijelaskanApr 23, 2025 am 12:07 AM

C dan JavaScript mencapai interoperabilitas melalui webassembly. 1) Kod C disusun ke dalam modul WebAssembly dan diperkenalkan ke dalam persekitaran JavaScript untuk meningkatkan kuasa pengkomputeran. 2) Dalam pembangunan permainan, C mengendalikan enjin fizik dan rendering grafik, dan JavaScript bertanggungjawab untuk logik permainan dan antara muka pengguna.

Dari laman web ke aplikasi: Aplikasi pelbagai JavaScriptDari laman web ke aplikasi: Aplikasi pelbagai JavaScriptApr 22, 2025 am 12:02 AM

JavaScript digunakan secara meluas di laman web, aplikasi mudah alih, aplikasi desktop dan pengaturcaraan sisi pelayan. 1) Dalam pembangunan laman web, JavaScript mengendalikan DOM bersama -sama dengan HTML dan CSS untuk mencapai kesan dinamik dan menyokong rangka kerja seperti JQuery dan React. 2) Melalui reaktnatif dan ionik, JavaScript digunakan untuk membangunkan aplikasi mudah alih rentas platform. 3) Rangka kerja elektron membolehkan JavaScript membina aplikasi desktop. 4) Node.js membolehkan JavaScript berjalan di sisi pelayan dan menyokong permintaan serentak yang tinggi.

Python vs JavaScript: Gunakan Kes dan Aplikasi MembandingkanPython vs JavaScript: Gunakan Kes dan Aplikasi MembandingkanApr 21, 2025 am 12:01 AM

Python lebih sesuai untuk sains data dan automasi, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python berfungsi dengan baik dalam sains data dan pembelajaran mesin, menggunakan perpustakaan seperti numpy dan panda untuk pemprosesan data dan pemodelan. 2. Python adalah ringkas dan cekap dalam automasi dan skrip. 3. JavaScript sangat diperlukan dalam pembangunan front-end dan digunakan untuk membina laman web dinamik dan aplikasi satu halaman. 4. JavaScript memainkan peranan dalam pembangunan back-end melalui Node.js dan menyokong pembangunan stack penuh.

Peranan C/C dalam JavaScript Jurubah dan PenyusunPeranan C/C dalam JavaScript Jurubah dan PenyusunApr 20, 2025 am 12:01 AM

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

JavaScript in Action: Contoh dan projek dunia nyataJavaScript in Action: Contoh dan projek dunia nyataApr 19, 2025 am 12:13 AM

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

JavaScript dan Web: Fungsi teras dan kes penggunaanJavaScript dan Web: Fungsi teras dan kes penggunaanApr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

See all articles

Alat AI Hot

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft