Artikel ini pada asalnya diterbitkan di blog pemaju Okta. Terima kasih kerana menyokong rakan kongsi yang membuat SitePoint mungkin.
React adalah perpustakaan yang cepat dan ringan, yang telah membawa kepada penggunaan cepat di seluruh ekosistem spa (satu halaman). Preact adalah alternatif yang lebih ringan dan lebih cepat untuk bertindak balas, beratnya pada 3KB yang kecil! Untuk aplikasi yang kurang kompleks, ia boleh menjadi pilihan yang hebat.Dalam tutorial ini, anda akan membina aplikasi preact asas dengan beberapa halaman dan pengesahan pengguna menggunakan widget log masuk Okta.
Takeaways Key
- Gunakan preactcli untuk mencetuskan aplikasi yang baru, memanfaatkan keserasiannya dengan beberapa plugin React sambil menikmati rangka kerja yang lebih ringan dan lebih cepat.
- Mengintegrasikan Pengesahan Pengguna dalam aplikasi Preact anda menggunakan widget log masuk Okta, memudahkan proses menguruskan sesi dan keselamatan pengguna.
- Melaksanakan komponen pesanan lebih tinggi (HOCs) untuk pengesahan untuk menguruskan negeri log masuk pengguna dan melindungi laluan dalam aplikasi preact anda dengan berkesan.
- Menggunakan komponen penghala Preact dan komponen redirect adat untuk mengendalikan perlindungan navigasi dan laluan, memastikan pengguna diarahkan dengan sewajarnya berdasarkan status pengesahan mereka.
- Kemas kini pelbagai komponen, seperti halaman log masuk dan profil, untuk berinteraksi dengan logik pengesahan, memberikan pengalaman pengguna dan pemperibadian yang lancar berdasarkan data pengguna.
- bootstrap aplikasi anda dengan preactcli
Untuk memulakan projek anda, anda akan memasang preactcli menggunakan npm.
Sebaik sahaja anda memasang CLI, jalankan arahan untuk membuat aplikasi preact asas:
npm install -g preact-cli
Perintah ini akan berkumpul bersama selama beberapa minit perancah aplikasi preact asas dan memasang semua kebergantungan. Sebaik sahaja ia selesai, anda harus melihat sekumpulan maklumat mengenai baris arahan yang memberitahu anda tentang apa yang boleh anda lakukan seterusnya.
preact create okta-preact-example
Tukar ke dalam direktori aplikasi.
kemudian mulakan aplikasi, hanya untuk memastikan semuanya berfungsi seperti yang diharapkan.
cd okta-preact-example
anda harus melihat larian yang cepat dan skrin akan jelas dan menunjukkan kepada anda bahawa aplikasi sedang berjalan di http: // localhost: 8080. Apabila anda membuka URL itu di penyemak imbas anda, anda harus melihat halaman seperti ini:
npm start
Beberapa perkara yang perlu diperhatikan mengenai preactcli

Walaupun aplikasi yang dihasilkan oleh preactcli banyak kelihatan seperti aplikasi React yang dihasilkan oleh Create-react-app, dan anda juga boleh menggunakan beberapa plugin React (seperti react-router) dalam aplikasi preact anda, terdapat beberapa yang signifikan perbezaan.
Contohnya, tidak seperti ReactCli, tidak ada cara untuk mengeluarkan konfigurasi Webpack. Sebaliknya Preact menggalakkan pemaju untuk menyesuaikan webpack dengan membuat fail yang dipanggil preact.config.js, menggunakan pembantu konfigurasi webpack Preact dan mengeksport fungsi untuk mengubah cara Webpack berkelakuan.Walaupun preactcli mengatakan permohonan itu berjalan di http://0.0.0.0:8080, gunakan http: // localhost: 8080. Ia adalah perkara yang sama dan apabila anda menyediakan aplikasi anda di papan pemuka Okta, anda akan menetapkan http: // localhost: 8080 sebagai URL asas anda dan URL panggil balik, jadi ini hanya memastikan bahawa anda boleh menghubungi API Okta.
Buat aplikasi Okta anda
Sekarang anda mempunyai shell asas aplikasi, sudah tiba masanya untuk menambah pengesahan pengguna. Jika anda tidak mempunyai satu, buat akaun percuma (selama -lamanya) di Okta.
Sebaik sahaja anda telah membuat akaun, pergi ke papan pemuka admin dan klik pada "Aplikasi" dalam menu halaman. Kemudian klik butang "Tambah Aplikasi" Hijau, kemudian butang "Buat Aplikasi Baru" hijau, supaya anda melihat tetingkap modal seperti:
Pilih "Spa" dari butang Platform. Klik butang "Seterusnya" untuk membuat aplikasi anda.

Ini akan membawa anda ke skrin ke halaman "Tetapan Aplikasi" dari Wizard Aplikasi Buat. Masukkan "OktapreaceCtExample" dalam medan nama aplikasi dan tambahkan http: // localhost: 8080 sebagai uri asas anda dan sebagai uri redirect login. Apabila anda selesai, borang anda sepatutnya kelihatan seperti ini:

Pasang log masuk okta dalam widget
Cara paling mudah untuk mendapatkan pengesahan Okta ke dalam aplikasi Preact baru anda adalah menggunakan widget log masuk Okta. Anda akan memasangnya dengan NPM menggunakan:
anda juga perlu memasang preact-router dengan:
npm install -g preact-cli
Tambahkan komponen pesanan lebih tinggi Auth
preact create okta-preact-example
dengan yang dilakukan, anda kini perlu menambah beberapa komponen pesanan yang lebih tinggi untuk membantu dengan pengesahan.
tambahkan fail yang dipanggil auth.js dalam folder /src /lib dan tambahkan kod berikut:
Dalam baris pertama kod, anda boleh memberitahu sesuatu yang berbeza. Modul H dalam Preact adalah apa yang menjadikan JSX menjadi elemen DOM. Biasanya, React akan menggunakan Perpustakaan React untuk menjana reaksi. Penyataan Createelement untuk membuat elemen DOM dari JSX. Preact menggunakan Perpustakaan H untuk membuat sesuatu seperti H ('Div', {Class: 'Something', 'Content') untuk melakukan itu.
cd okta-preact-example
Seterusnya, anda mengimport laluan dari preact-router tepat di bawah import H. Inilah yang digunakan oleh Preact untuk melakukan pengalihan dalam fungsi log masuk. Perhatikan bahawa kelas auth hanyalah fungsi biasa dan tidak memanjangkan komponen. Dalam pembina, fungsi dalaman terikat dengan konteks ini dari kelas auth.
kemudian masukkan URL Organisasi OKTA dan ID Pelanggan anda ke Konfigurasi Widget Masuk Okta. URL organisasi anda akan menjadi URL yang anda gunakan semasa anda log masuk ke akaun Okta anda (mis. "Tab untuk permohonan anda (jelas, anda tidak akan kabur):

Anda juga ingin menukar harta redirectic ke http: // localhost: 8080 kerana sudah preact menggunakan port 8080 dan bukannya 3000 untuk aplikasi reaksi biasa.
Fungsi log masuk hanya mengarahkan pengguna ke halaman log masuk, sementara fungsi logout membersihkan token yang disimpan dalam pengurus token widget, panggilan masuk pada widget, dan mengalihkan pengguna ke akar aplikasi.
Akhirnya, seorang singleton kelas auth dicipta untuk dikongsi oleh semua komponen, dan diluluskan sebagai prop yang dipanggil Auth kepada mana -mana komponen yang anda bungkus dengan withAuth.
Buat Widget Wrapper
Buat fail dalam folder /src /lib anda yang dipanggil oktasigninwidget.js. Masukkan kod untuk komponen ini:
npm install -g preact-cli
di sini, kaedah ComponentDidMount menjadikan widget log masuk Okta ke Div dalam kaedah render anda dan fungsi ComponentWillUnmount menghilangkan widget.
Dalam kaedah render, terdapat beberapa kod yang pelik. Ini membolehkan anda menetapkan rujukan kepada elemen semasa ke dalam pembolehubah yang dipanggil widgetContainer dan kemudian menggunakannya dalam ComponentDidMount sebagai ini.widgetContainer. Kemas, ya? Terima kasih kepada Matt Raible kerana menunjukkan kepada saya tipu muslihat!
Buat komponen redirect
Router React mempunyai komponen redirect di dalamnya, tetapi penghala yang betul tidak, jadi anda memerlukannya. Nasib baik, mudah untuk mencipta sendiri. Dalam folder anda /src /lib anda buat fail yang dipanggil redirect.js dan tambahkan kod berikut:
preact create okta-preact-example
Ini hanyalah komponen yang akan diarahkan semula berdasarkan URL yang diserahkan kepadanya. Dalam kes ini, penggunaan akan diarahkan dengan menggunakan mekanisme tetingkap., Kebanyakannya kerana anda ingin menyegarkan semula halaman. Anda juga boleh menggunakan laluan (this.props.to.pathname) dan biarkan penghala Preact mengalihkan pengguna.
Buat komponen log masuk
Seterusnya, buat folder log masuk dalam SRC/Laluan. Dalam folder itu buat fail index.js dan fail gaya.css. Ini hanya berikut dengan cara CLI yang sudah preact mencipta komponen.
Dalam fail index.js, buat komponen log masuk, dibungkus dalam komponen WithAuth. Pertama, dengan mengimport modul yang diperlukan:
npm install -g preact-cli
Mulakan komponen dengan membungkus komponen pesanan lebih tinggi yang anda buat sebelum ini, dan tetapkan keadaan permulaan. Di sini, anda akan mempunyai redirecttoreferrer yang ditetapkan kepada palsu secara lalai.
preact create okta-preact-example
dalam fungsi kitaran hayat ComponentWillMount, mengikat fungsi onsuccess dan onerror dan membuatnya dalam komponen anda.
cd okta-preact-example
Anda akan melihat komponen anda melewati pengendalian pengesahan kembali ke komponen pesanan yang lebih tinggi. Ini adalah contoh utama manfaat komponen dan komposisi pesanan lebih tinggi dalam JavaScript.
Akhirnya, buat fungsi render yang akan membuat keputusan mengenai menunjukkan widget log masuk atau, jika pengguna sudah log masuk, mengalihkannya ke halaman rumah. Anda juga boleh mengalihkan pengguna ke halaman yang mereka akan pergi ketika mereka diarahkan ke halaman log masuk, tetapi mari langkau itu buat masa ini.
npm start
Anda akan melihat di sini bahawa Preact adalah sedikit berbeza kerana ia memberi anda mengendalikan kepada prop dan menyatakan sebagai parameter kepada fungsi render. Kod ini hanya menggunakan pemusnahan parameter tersebut untuk menggunakan lokasi, auth dan redirecttoreferrer mudah tanpa mempunyai satu tan ini.
jadi fail final /src/routes/login/index.js akan kelihatan seperti:
npm install @okta/okta-signin-widget --saveKemas kini halaman Profil
Sekarang anda mempunyai komponen log masuk dan menggunakan widget log masuk Okta, gunakan komponen auth yang anda buat dan kemas kini halaman profil (di /src/routes/profile/index.js) untuk memberi anda lebih banyak lagi maklumat mengenai pengguna. Inilah fail akhir /src/routes/profile/index.js anda yang sepatutnya kelihatan seperti:
npm install preact-router --saveAnda telah menambah perlindungan pengesahan pada tahap komponen dalam fungsi komponen komponen komponen. Jika pengguna disahkan, ia memanggil fungsi getCurrentUser pada komponen pesanan yang lebih tinggi dan menambah pengguna ke keadaan komponen. Dalam fungsi render, anda hanya mengeluarkan nama dan e -mel pengguna.
Kemas kini komponen pengepala
Sekarang anda hanya perlu mendapatkan laluan ke dalam aplikasi anda dan dapatkan menu untuk menghubungkannya dengan mereka. Mulakan dengan menukar fail /src/components/header/index.js ke:
import {h} from 'preact'; import { route } from 'preact-router'; import OktaSignIn from '@okta/okta-signin-widget/dist/js/okta-sign-in.min.js'; import '@okta/okta-signin-widget/dist/css/okta-sign-in.min.css'; import '@okta/okta-signin-widget/dist/css/okta-theme.css'; class Auth { constructor() { this.login = this.login.bind(this); this.logout = this.logout.bind(this); this.isAuthenticated = this.isAuthenticated.bind(this); this.handleAuthentication = this.handleAuthentication.bind(this); this.widget = new OktaSignIn({ baseUrl: 'https://{yourOktaDomain}.com/', clientId: '{clientId}', redirectUri: 'http://localhost:8080', authParams: { responseType: ['id_token', 'token'], scopes: ['openid', 'email', 'profile'] } }); } isAuthenticated() { // Checks if there is a current accessToken in the TokenManger. return !!this.widget.tokenManager.get('accessToken'); } getCurrentUser(){ return this.widget.tokenManager.get('idToken'); } login() { // Redirect to the login page route('/login/'); } async logout() { this.widget.tokenManager.clear(); await this.widget.signOut(); location = '/'; } handleAuthentication(tokens) { for (let token of tokens) { if (token.idToken) { this.widget.tokenManager.add('idToken', token); } else if (token.accessToken) { this.widget.tokenManager.add('accessToken', token); } } } } // create a singleton const auth = new Auth(); export const withAuth = WrappedComponent => props => <WrappedComponent auth={auth} {...props} />;Ini akan menunjukkan butang "Log masuk" jika pengguna tidak log masuk dan butang "Logout" jika mereka. Ia juga akan menunjukkan item menu "Profil" kepada pengguna yang dilog masuk.
Tukar penghalaan anda
Akhirnya, tukar laluan di fail /src/components/app.js anda supaya permohonan anda mengetahui tentang laluan baru anda dan cara mengendalikannya. Jadi fail app.js baru anda akan kelihatan seperti:
import { h, Component } from 'preact'; export default class OktaSignInWidget extends Component { componentDidMount() { this.widget = this.props.widget; this.widget.renderEl({ el: this.widgetContainer }, this.props.onSuccess, this.props.onError); } componentWillUnmount() { this.widget.remove(); } render() { return <div ref={(div) => { this.widgetContainer = div; }} /> } };semua yang benar -benar berubah ialah anda mengimport komponen log masuk yang baru dibuat dan mengeluarkan harta pengguna yang diluluskan ke dalam komponen profil dan menambah laluan baru untuk komponen log masuk.
Jalankan Aplikasi Preact baru anda!
Anda kini boleh menyimpan kerja anda dan jalankan NPM Mula dalam folder root dan lihat aplikasi Preact yang berfungsi sepenuhnya dengan Pengesahan Pengguna melalui OKTA!
Terdapat banyak persamaan antara Preact dan React, tetapi terdapat beberapa perbezaan utama. Preact dimaksudkan untuk aplikasi di mana menjaga saiz muat turun kecil adalah kritikal. Terdapat beberapa kemudahan yang bagus dalam penghala yang sudah berjaya, tetapi ada beberapa perkara yang hilang (seperti dengan router). Terdapat juga beberapa kemudahan yang kemas, seperti mempunyai alat peraga dan negeri yang diserahkan kepada fungsi render. Semua dalam semua, saya fikir sudah preact adalah kemas, tetapi saya dapat melihat benar-benar memerlukan reaksi penuh untuk aplikasi kompleks.
Ketahui lebih lanjut
Anda boleh mengetahui lebih lanjut mengenai Preact dari laman web mereka dan router preact dari repositori GitHub.
anda juga boleh mendapatkan kod lengkap untuk artikel ini dari pemaju Okta Github Repository.
Seperti biasa, jika anda mempunyai sebarang pertanyaan, komen atau kebimbangan mengenai artikel, kod, preact atau Okta, jangan ragu untuk menghubungi saya melalui e -mel, atau memukul saya dalam komen atau melalui Twitter @leebrandt.
soalan yang sering ditanya mengenai membina aplikasi yang sudah preact dengan pengesahan
Apa yang sudah berjaya dan bagaimana ia berbeza daripada React? Ia direka untuk menjadi kecil dan cekap, dengan saiz termampat hanya 3kb. Preact menyediakan perpustakaan UI moden yang sama dan ciri -ciri React, seperti pelbagai maya dan komponen, tetapi dengan jejak yang lebih kecil. Ia sesuai untuk peranti mudah alih di mana jalur lebar dan prestasi boleh menjadi masalah. Preact juga bertujuan untuk menjadi hampir bertindak balas yang mungkin dalam API, menjadikannya mudah bagi pemaju React untuk mula menggunakan Preact dengan pelarasan yang minimum. Projek yang sudah lama adalah mudah. Anda boleh menggunakan Preact-CLI, alat baris arahan yang membantu anda membuat dan menguruskan projek yang sudah preact. Untuk memasangnya, anda perlu mempunyai Node.js dan NPM yang dipasang pada komputer anda. Sebaik sahaja dipasang, anda boleh membuat projek baru dengan menjalankan perintah PreAct Buat Projek My-Project, di mana 'My-Project' adalah nama projek anda. Ini akan mewujudkan direktori baru dengan fail projek dan kebergantungan. Pertama, anda perlu memasang dan mengimport perpustakaan yang diperlukan, seperti preact-router untuk routing dan preact-cookies untuk mengendalikan cookies. Kemudian, anda perlu membuat borang log masuk dan perkhidmatan pengesahan yang akan mengendalikan permintaan log masuk dan menguruskan sesi pengguna. Akhirnya, anda perlu melindungi laluan anda dengan menyemak sama ada pengguna disahkan sebelum memberikan komponen yang dilindungi.
Bagaimana saya mengendalikan penghalaan dalam Preact?
Preact menggunakan preact-router untuk penghalaan. Ia adalah penghala yang mudah dan kecil yang menggunakan API Sejarah Pelayar. Untuk menggunakannya, anda perlu memasangnya melalui NPM dan mengimportnya ke dalam projek anda. Kemudian, anda boleh menentukan laluan anda menggunakan komponen
Atas ialah kandungan terperinci Bina aplikasi yang sudah berjaya dengan pengesahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam apa yang kelihatan seperti satu lagi kemunduran untuk domain di mana kita percaya manusia akan selalu melampaui mesin, para penyelidik kini mencadangkan agar AI memahami emosi yang lebih baik daripada yang kita lakukan.

Kecerdasan Buatan (AI) bermula sebagai usaha untuk mensimulasikan otak manusia. Ia kini dalam proses mengubah peranan otak manusia dalam kehidupan seharian? Revolusi perindustrian mengurangkan pergantungan pada buruh manual. Sebagai seseorang yang menyelidik aplikasinya

Suka atau tidak, kecerdasan buatan telah menjadi sebahagian daripada kehidupan seharian. Banyak peranti-termasuk pisau cukur elektrik dan berus gigi-telah menjadi berkuasa AI, "menggunakan algoritma pembelajaran mesin untuk mengesan bagaimana seseorang menggunakan peranti, bagaimana devi

Model kecerdasan buatan baru (AI) telah menunjukkan keupayaan untuk meramalkan peristiwa cuaca utama dengan lebih cepat dan dengan ketepatan yang lebih besar daripada beberapa sistem ramalan global yang paling banyak digunakan. Model ini, bernama Aurora, telah dilatih U

Semakin tepatnya kita cuba membuat fungsi model AI, semakin besar pelepasan karbon mereka menjadi - dengan petunjuk tertentu menjana sehingga 50 kali lebih banyak karbon dioksida daripada yang lain, menurut kajian baru -baru ini. Model -model yang berlaku seperti Claude Antropik

Model kecerdasan buatan (AI) boleh mengancam dan memeras ugut manusia apabila terdapat konflik antara objektif model dan keputusan pengguna, menurut satu kajian baru. Diterbitkan pada 20 Jun, penyelidikan yang dijalankan oleh firma AI Anthropic memberikan lnya L

Kebimbangan utama dengan teknologi besar yang bereksperimen dengan kecerdasan buatan (AI) bukanlah ia mungkin menguasai kemanusiaan. Isu sebenar terletak pada ketidaktepatan model bahasa besar (LLMS) yang berterusan seperti chatgpt AI, Gemini Google, dan

Kecerdasan buatan yang lebih maju (AI) menjadi, semakin cenderung "halusinasi" dan memberikan maklumat palsu atau tidak tepat. Menurut penyelidikan oleh Openai, model penalaran yang paling baru dan berkuasa-O3 dan O4-mini-Exhibited H
