mata utama
htpasswd
utiliti digunakan untuk mencerna pengesahan akses. Kata laluan disimpan dalam fail kata laluan di sebelah pelayan, dan modul htdigest
digunakan untuk menambah sokongan pengesahan ke pelayan HTTP. http-auth
express-basic-auth
Pengesahan Akses Asas
Apabila pengguna mengakses tapak yang melaksanakan pengesahan, sistem itu akan mendorongnya memasuki nama pengguna dan kata laluannya. Jika pengguna menyediakan kelayakan yang sah, mereka akan dibawa ke kandungan halaman, jika tidak, mereka akan dinafikan dengan respons "401 tanpa izin". Jenis pengesahan HTTP yang paling mudah adalah pengesahan akses asas.Fail Kata Laluan
boleh digunakan untuk menguruskan fail kata laluan. Untuk memasang htpasswd
, gunakan arahan berikut. htpasswd
bermaksud Pengurus Pakej Node.js, yang dipasang secara lalai dengan Node.js. npm
digunakan untuk memasang modul Node.js. npm
bendera pakej pemasangan global, yang bermaksud ia termasuk dalam pembolehubah laluan sistem. -g
npm install -g htpasswd
, anda boleh membuat pengguna baru menggunakan arahan berikut. Contoh ini menggunakan bendera htpasswd
untuk membuat fail kata laluan baru bernama "HtPasswd". Dalam fail baru, tambahkan pengguna bernama "Foo". Bendera -c
membolehkan kata laluan "bar" ditentukan sebagai sebahagian daripada baris arahan. -b
htpasswd -bc htpasswd foo bar
<code>foo:{SHA}Ys23Ag/5IOWqZCw9QGaVDdHwH00=</code>
menggunakan arahan NPM berikut. http-auth
npm install -g htpasswd
Seterusnya, buat fail baru yang dipanggil "Basic_auth_Server.js" dan tambahkan kod berikut. Perhatikan bahawa modul http-auth
dirujuk dalam baris 2. Dalam baris 3 hingga 7, lulus objek konfigurasi ke modul pengesahan. Bidang authRealm
mentakrifkan alam pengesahan. Medan authFile
menunjuk ke fail kata laluan yang kami buat sebelum ini. __dirname
merujuk kepada direktori di mana skrip yang sedang dilaksanakan terletak. Contoh ini mengandaikan bahawa fail "HtPasswd" berada dalam direktori yang sama seperti "Basic_auth_server.js". Bidang konfigurasi authType
menunjukkan jenis pengesahan untuk digunakan. Dalam baris 9, skim pengesahan asas digunakan untuk sambungan HTTP. Fungsi panggil balik pengesahan menyediakan nama pengguna yang disahkan untuk pemprosesan selanjutnya.
htpasswd -bc htpasswd foo bar
Akhirnya, mulakan pelayan. Anda boleh menyambung ke pelayan dengan menavigasi ke https://www.php.cn/link/bb122c8fe6c764e8aaa5555e2186a6344 . Anda akan diminta memasukkan nama pengguna dan kata laluan anda. Sediakan kelayakan yang anda buat sebelum ini dan penyemak imbas akan menyapa anda dengan nama.
Dissue Access Authentication
Pengesahan Akses Digital adalah alternatif yang lebih selamat untuk pengesahan asas. Dengan Pengesahan Digest, kata laluan disulitkan sebelum rangkaian dihantar.Fail Kata Laluan
. Gunakan arahan NPM berikut untuk memasang htdigest
. htdigest
<code>foo:{SHA}Ys23Ag/5IOWqZCw9QGaVDdHwH00=</code>
digunakan untuk membuat fail kata laluan baru bernama "HtPasswd". Kali ini kita juga perlu menentukan medan pengesahan. Dalam kes ini, medan pengesahan adalah "kawasan persendirian". Dalam contoh ini, nama pengguna sekali lagi "foo". Sila ambil perhatian bahawa kata laluan tidak disediakan dalam perintah. Setelah memasukkan arahan, anda akan diminta untuk memberikan kata laluan anda. -c
npm install http-auth
, periksa bahagian dalam fail "HtPasswd" yang baru. Kemasukan untuk "Foo" ditunjukkan di bawah. Fail pengesahan Digest mengandungi nama pengguna dan kata laluan yang disulitkan, serta alam pengesahan yang tidak termasuk dalam fail pengesahan asas. htdigest
npm install -g htpasswd
Untuk mengintegrasikan pengesahan pencerna ke dalam pelayan kami, kami akan menggunakan modul http-auth
sekali lagi. Jika anda telah mengikuti tutorial ini, modul harus dipasang pada mesin anda. Seterusnya, buat fail baru yang dipanggil "Digest_auth_server.js" untuk melaksanakan pelayan anda. Kod pelayan ditunjukkan di bawah. Ambil perhatian bahawa kod pelayan hampir sama dengan kod pelayan pengesahan asas. Perbezaannya ialah bidang authType
objek konfigurasi. Dalam kes ini, authType
ditetapkan untuk "mencerna". Pelayan ini boleh diakses seperti pelayan pengesahan asas.
htpasswd -bc htpasswd foo bar
Kesimpulan
Artikel ini memperkenalkan asas -asas pengesahan HTTP. Dengan mengikuti contoh -contoh yang disediakan di sini, aplikasi Node.js anda boleh menjadi sedikit lebih selamat. Walau bagaimanapun, anda harus tahu bahawa pengesahan sahaja tidak mencukupi. Jika keselamatan adalah isu utama, laman web anda harus disampaikan melalui HTTPS. Dalam jawatan yang akan datang, saya akan meneroka HTTPS dan banyak lagi ciri -ciri Node.js yang hebat. Jika anda menyukai siaran ini, anda akan ingin mengetahui segala-galanya mengenai koleksi lompat cetakan dan e-book terkini SitePoint. Buku pertama ialah "Node.js" Don Nguyen - Ketahui lebih lanjut di Sitepoint!
(Berikut adalah bahagian FAQ. Oleh kerana panjang artikel, saya akan meringkaskan bahagian FAQ untuk mengekalkan maklumat teras dan mengelakkan pertindihan dan redundansi.)
FAQ (FAQ) Mengenai Pengesahan HTTP dalam Node.js
Gunakan middleware. Kod sampel menunjukkan cara mengesahkan dengan nama pengguna dan kata laluan.
express-basic-auth
Gunakan modul dan tentukan laluan fail kata laluan. Pastikan anda menggunakan HTTPS untuk meningkatkan keselamatan.
http-auth
Gunakan fail atau pangkalan data untuk menyimpan nama pengguna dan kata laluan. Modul menyokong fungsi ini.
http-auth
Tetapkan pilihan .
realm
Pelayan akan menghantar respons 401 yang tidak dibenarkan. Anda boleh menyesuaikan respons ini.
Buat pelayan HTTPS dan bukan pelayan HTTP.
Tetapkan kuki selepas pengesahan yang berjaya.
Gunakan sesi middleware, seperti .
Bagaimana menggunakan pengesahan HTTP dengan JSON Web Token (JWT)? Gunakan middleware JWT, contohnya express-jwt
.
Bagaimana menggunakan pengesahan HTTP dengan OAuth? Gunakan OAuth Middleware, contohnya passport
.
Atas ialah kandungan terperinci Pengesahan HTTP di Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!