NodeJS

Cara Mengizinkan Pengguna Menggunakan OAuth Google di Node.js

Cara Mengizinkan Pengguna Menggunakan OAuth Google di Node.js

Open Authorization, juga dikenali sebagai OAuth, adalah protokol yang digunakan untuk memberi kebenaran kepada pengguna di laman web anda menggunakan beberapa perkhidmatan pihak ketiga seperti Google, Github, Facebook, dll. Perkhidmatan pihak ketiga berkongsi beberapa data (nama, e-mel, gambar profil, dll.) dengan laman web anda dan kemudian memberi kebenaran kepada pengguna bagi pihaknya tanpa menguruskan kata laluan dan nama pengguna untuk laman web anda, dan menjimatkan banyak masalah kepada pengguna.

Bagaimana OAuth Berfungsi

Apabila pengguna mengklik "Login dengan Google", pengguna akan membawa ke halaman persetujuan Google OAuth. Apabila pengguna bersetuju dengan persetujuan dan mengesahkan identitinya di Google, Google akan menghubungi laman web anda sebagai perkhidmatan pihak ketiga dan memberi kebenaran kepada pengguna bagi pihaknya dan berkongsi beberapa data dengan laman web anda. Dengan cara ini, pengguna boleh diberi kebenaran tanpa menguruskan kelayakan untuk laman web anda secara berasingan.

Melaksanakan Google OAuth menggunakan Node.js

Hampir semua bahasa pengaturcaraan menyediakan perpustakaan yang berbeza untuk melaksanakan google oauth untuk memberi kebenaran kepada pengguna. Node.js menyediakan perpustakaan 'passport' dan 'passport-google-oauth20' untuk melaksanakan google oauth. Dalam artikel ini, kami akan menerapkan protokol oauth untuk mengizinkan pengguna menggunakan nod.js.

Buat Projek di Google

Langkah pertama untuk melaksanakan Google OAuth adalah membuat projek di konsol pembangun google untuk laman web anda. Projek ini digunakan untuk mendapatkan kunci API yang digunakan untuk membuat permintaan ke Google untuk pengesahan terbuka. Dapatkan pautan berikut dan buat projek anda.

https: // konsol.pemaju.google.com

Mengkonfigurasi Projek Google

Setelah anda membuat projek, masuk ke dalam projek dan pilih "Skrin persetujuan OAuth" dari menu sebelah kiri.

Klik pada butang 'buat' dan berikan semua butiran projek anda. Klik "Simpan dan Teruskan" untuk meneruskan.

Sekarang berikan skop projek anda. Skop adalah jenis kebenaran untuk mengakses data pengguna dari akaun google. Anda perlu menetapkan kebenaran untuk mendapatkan data pengguna tertentu dari akaun google anda. Klik "Simpan dan Teruskan."

Sekarang tambahkan pengguna ujian ke projek jika anda mahu. Pengguna uji adalah satu-satunya pengguna yang dibenarkan yang dapat mengakses aplikasi web anda dalam mod Uji. Buat masa ini, kami tidak akan memasukkan pengguna ujian dan klik "Simpan dan Teruskan" untuk beralih ke halaman ringkasan projek.

Kaji projek anda di halaman ringkasan dan simpan konfigurasi. Sekarang kami akan menghasilkan bukti kelayakan untuk projek kami. Pilih tab 'Kredensial' di menu sebelah kiri dan klik pada butang 'Buat kelayakan' di atas untuk menghasilkan OAuth 2.0 ID Pelanggan.

Dari menu lungsur turun, pilih 'ID klien OAuth' dan tentukan jenis aplikasi sebagai 'Aplikasi web' dan nama aplikasi anda.

Pada halaman yang sama, kita harus menyediakan dua URI, 'Origins Javascript Authorized' dan 'URI pengalihan yang dibenarkan'. 'Origins javascript yang dibenarkan' adalah asal HTTP aplikasi web anda, dan tidak boleh mempunyai jalan. 'URI pengalihan yang dibenarkan' adalah URI yang tepat dengan jalan di mana pengguna akan diarahkan selepas pengesahan google.

Setelah memasukkan semua entri yang diperlukan, klik pada 'create' untuk membuat kelayakan OAuth.

Memulakan Node.Projek js

Setakat ini, kami telah membuat projek google untuk memberi kebenaran kepada pengguna untuk aplikasi kami menggunakan google. Sekarang kita akan memulakan simpul.projek js untuk melaksanakan oauth. Buat direktori bernama 'auth' dan mulakan projek ekspres.

[dilindungi e-mel]: ~ $ mkdir auth
[dilindungi e-mel]: ~ $ cd auth
[dilindungi e-mel]: ~ $ npm init -y

Memasang Pakej npm yang Diperlukan

Untuk melaksanakan Google OAuth menggunakan nod.js, kita perlu memasang beberapa pakej npm. Kami akan menggunakan 'passport', 'express', 'path', dan 'passport-google-oauth20'. Pasang pakej ini menggunakan npm.

[dilindungi e-mel]: ~ $ npm pasang laluan pasport ekspres-google-oauth20

Node Penulisan.kod js

Pertama sekali, kami akan menulis dua laman web html sederhana, satu dengan butang, dan memberi kebenaran kepada pengguna apabila mengklik butang. Halaman kedua akan diberi kuasa, dan pengguna akan diarahkan ke halaman yang diberi kuasa setelah diberi kebenaran. Buat fail 'public / index.html '.



OAuth


Mengizinkan Di Sini

Sekarang buat fail 'awam / kejayaan.html 'dengan kandungan berikut.



OAuth


Dibenar



Setelah membuat laman web, sekarang kami akan menulis kod untuk memberi kebenaran kepada pengguna untuk menggunakan google oauth. Buat indeks fail.js '.

// mengimport pakej yang diperlukan
const express = memerlukan ('express');
const passport = memerlukan ('passport');
const path = memerlukan ('path');
const GoogleStrategy = memerlukan ('passport-google-oauth20').Strategi;
aplikasi const = express ();
// menentukan parameter
// id pelanggan adalah parameter yang akan kami perolehi dari konsol pembangun google
CLIENT_ID = ”xxxxxxx”;
// rahsia pelanggan juga akan diambil dari konsol pembangun google
CLIENT_SECRET = "xxxxx";
// pengguna akan diarahkan ke CALLBACK_URL setelah mendapat kebenaran
CALLBACK_URL = ”http: // localhost: 8000 / dibenarkan”;
// nombor port mestilah sama seperti yang ditentukan dalam konsol pembangun
PELABUHAN = 8000;
// mengkonfigurasi perisian tengah pasport
aplikasi.gunakan (pasport.memulakan ());
aplikasi.gunakan (pasport.sesi ());
pasport.serializeUser (fungsi (id, selesai)
selesai (null, id);
);
pasport.deserializeUser (fungsi (id, selesai)
selesai (null, id);
);
// berikut middleware akan dijalankan setiap kali pasport. Kaedah autentikasi dipanggil dan mengembalikan parameter yang berbeza yang ditentukan dalam skop.
pasport.gunakan (Strategi Google baru (
ID pelanggan: CLIENT_ID,
clientSecret: CLIENT_SECRET,
callbackURL: CALLBACK_URL
,
fungsi async (accessToken, refreshToken, profile, email, cb)
kembalikan cb (batal, e-mel.ID);

));
// melayani laman utama untuk permohonan
aplikasi.dapatkan ('/', (req, res) =>

res.sendFile (jalan.sertai (__ dirname + '/ public / index.html '));
);
// laman kejayaan penyampaian permohonan
aplikasi.dapatkan ('/ kejayaan', (req, res) =>

res.sendFile (jalan.sertai (__ dirname + '/ awam / kejayaan.html '));
);
// pengguna akan diarahkan ke halaman autentikasi google setiap kali memasuki laluan '/ google / auth'.
aplikasi.dapatkan ('/ google / auth',
pasport.mengesahkan ('google', lingkup: ['profil', 'e-mel'])
);
// pengalihan kegagalan pengesahan ditentukan pada laluan berikut
aplikasi.dapatkan ('/ diberi kuasa',
pasport.mengesahkan ('google', failRedirect: '/'),
(req, res) =>

res.ubah hala ('/ kejayaan');

);
// menjalankan pelayan
aplikasi.dengar (PORT, () =>

konsol.log ("Pelayan berjalan di Port" + PORT)
)

Menguji OAuth Google

Sekarang aplikasi kita sudah siap, dan kita boleh menguji sama ada ia membenarkan pengguna menggunakan google oauth. Pergi ke direktori root dan jalankan aplikasinya.

[dilindungi e-mel]: ~ $ node indeks.js

Sekarang masukkan url aplikasi anda ke penyemak imbas.

http: // localhost: 8000

Ia menunjukkan halaman utama dengan tanda sauh.

Apabila kita mengklik 'Authorize Here', ia akan mengalihkan ke halaman google oauth.

Nama aplikasi anda 'Uji' dipaparkan di halaman pengesahan Google. Apabila anda membenarkan akaun anda, ia akan membawa anda ke halaman yang dibenarkan.

Kesimpulannya

Menguruskan nama pengguna dan kata laluan untuk aplikasi web yang berbeza bukanlah tugas yang senang bagi pengguna. Ramai pengguna meninggalkan aplikasi web anda tanpa mendaftarkan akaun mereka hanya kerana mereka tidak mahu menguruskan kelayakan. Proses kebenaran pada aplikasi web atau laman web anda dapat dipermudah dengan menggunakan perkhidmatan pihak ketiga seperti Google, Facebook, dll. Perkhidmatan ini memberi kebenaran kepada pengguna bagi pihak mereka, dan pengguna tidak perlu menguruskan tauliah secara berasingan. Dalam artikel ini, kami telah menerapkan protokol google oauth untuk membenarkan pengguna menggunakan Node.js.

Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...
0 A.D. Tutorial
Daripada banyak permainan strategi di luar sana, 0 A.D. berjaya menonjol sebagai tajuk yang komprehensif dan permainan taktikal yang sangat mendalam w...
Tutorial Unity3D
Pengenalan Unity 3D Unity 3D adalah enjin pengembangan permainan yang kuat. Ini adalah platform silang yang memungkinkan anda membuat permainan untuk ...