NodeJS

Cara Mengotorisasi Pengguna Menggunakan Google OAuth di Node.js

Cara Mengotorisasi Pengguna Menggunakan Google OAuth di Node.js

Otorisasi Terbuka, juga dikenal sebagai OAuth, adalah protokol yang digunakan untuk mengotorisasi pengguna di situs web Anda menggunakan beberapa layanan pihak ketiga seperti Google, Github, Facebook, dll. Layanan pihak ketiga membagikan beberapa data (nama, email, gambar profil, dll.) dengan situs web Anda dan kemudian mengotorisasi pengguna atas namanya tanpa mengelola kata sandi dan nama pengguna untuk situs web Anda, dan menghemat banyak masalah tambahan bagi pengguna.

Cara Kerja OAuth

Saat pengguna mengklik "Masuk dengan Google", pengguna akan dibawa ke halaman persetujuan OAuth Google. Ketika pengguna menyetujui persetujuan dan mengautentikasi identitasnya di Google, Google akan menghubungi situs web Anda sebagai layanan pihak ketiga dan memberi otorisasi kepada pengguna atas namanya dan membagikan beberapa data dengan situs web Anda. Dengan cara ini, pengguna dapat diotorisasi tanpa mengelola kredensial untuk situs web Anda secara terpisah.

Menerapkan Google OAuth menggunakan Node.js

Hampir semua bahasa pemrograman menyediakan perpustakaan yang berbeda untuk mengimplementasikan google oauth untuk mengotorisasi pengguna. simpul.js menyediakan perpustakaan 'paspor' dan 'paspor-google-oauth20' untuk mengimplementasikan google oauth. Pada artikel ini, kami akan menerapkan protokol oauth untuk mengizinkan pengguna menggunakan node.js.

Buat Proyek di Google

Langkah pertama untuk menerapkan Google OAuth adalah membuat proyek di konsol pengembang google untuk situs web Anda. Proyek ini digunakan untuk mendapatkan kunci API yang digunakan untuk membuat permintaan ke Google untuk otentikasi terbuka. Buka tautan berikut dan buat proyek Anda.

https://konsol.pengembang.google.com

Mengonfigurasi Proyek Google

Setelah Anda membuat proyek, masuk ke proyek dan pilih "Layar persetujuan OAuth" dari menu sebelah kiri.

Klik tombol 'buat' dan berikan semua detail proyek Anda. Klik "Simpan dan Lanjutkan" untuk melanjutkan.

Sekarang berikan ruang lingkup proyek Anda. Cakupan adalah jenis izin untuk mengakses data pengguna dari akun google. Anda perlu mengatur izin untuk mendapatkan data pengguna tertentu dari akun google Anda. Klik “Simpan dan Lanjutkan.”

Sekarang tambahkan pengguna uji ke proyek jika Anda mau. Pengguna uji adalah satu-satunya pengguna yang diizinkan yang dapat mengakses aplikasi web Anda dalam mode Pengujian. Untuk saat ini, kami tidak akan memasukkan pengguna uji dan klik "Simpan dan Lanjutkan" untuk beralih ke halaman ringkasan proyek.

Tinjau proyek Anda di halaman ringkasan dan simpan konfigurasinya. Sekarang kami akan membuat kredensial untuk proyek kami. Pilih tab 'Kredensial' di menu sebelah kiri dan klik tombol 'Buat kredensial' di atas untuk menghasilkan OAuth 2.0 ID Klien.

Dari menu tarik-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, 'Authorized Javascript Origins' dan 'Authorized redirect URIs'. 'Asal javascript resmi' adalah asal HTTP aplikasi web Anda, dan tidak dapat memiliki jalur apa pun. 'URI pengalihan resmi' adalah URI yang tepat dengan jalur tempat pengguna akan dialihkan setelah autentikasi google.

Setelah memasukkan semua entri yang diperlukan, klik 'buat' untuk membuat kredensial OAuth.

Memulai Node.Proyek js

Sejauh ini, kami telah membuat proyek google untuk mengotorisasi pengguna untuk aplikasi kami menggunakan google. Sekarang kita akan memulai node.proyek js untuk mengimplementasikan oauth. Buat direktori bernama 'auth' dan mulai proyek ekspres.

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

Menginstal Paket npm yang Diperlukan

Untuk menerapkan Google OAuth menggunakan node.js, kita perlu menginstal beberapa paket npm. Kami akan menggunakan 'passport', 'express', 'path', dan 'passport-google-oauth20'. Instal paket-paket ini menggunakan npm.

[dilindungi email]:~$ npm install express passport passport-google-oauth20 path

Node Penulisan.kode js

Pertama-tama, kita akan menulis dua halaman web html sederhana, satu dengan tombol, dan mengotorisasi pengguna saat mengklik tombol. Halaman kedua akan diotorisasi, dan pengguna akan diarahkan ke halaman yang diotorisasi setelah otorisasi. Buat file 'publik/indeks.html'.



OAuth


Otorisasi Disini

Sekarang buat file 'publik/sukses.html' dengan konten berikut.



OAuth


Resmi



Setelah membuat halaman web, sekarang kita akan menulis kode untuk mengizinkan pengguna menggunakan google oauth. Buat file 'indeks.js'.

// mengimpor paket yang diperlukan
const ekspres = membutuhkan('ekspres');
const paspor = membutuhkan('paspor');
const jalur = membutuhkan('jalur');
const GoogleStrategy = membutuhkan('paspor-google-oauth20').Strategi;
aplikasi const = ekspres();
//mendefinisikan parameter
// client id adalah parameter yang akan kita dapatkan dari google developer console
CLIENT_ID="xxxxxxx";
// rahasia klien juga akan diambil dari konsol pengembang google
CLIENT_SECRET=”xxxxx”;
// pengguna akan diarahkan ke CALLBACK_URL setelah otorisasi
CALLBACK_URL="http://localhost:8000/authorized";
// nomor port harus sama dengan yang ditentukan di konsol pengembang
PELABUHAN=8000;
// mengonfigurasi middleware paspor
aplikasi.gunakan (paspor.inisialisasi());
aplikasi.gunakan (paspor.sidang());
paspor.serializeUser( function(id, selesai)
selesai(null, id);
);
paspor.deserializeUser( function(id, selesai)
selesai(null, id);
);
// middleware berikut akan berjalan kapan pun paspor. Metode otentikasi dipanggil dan mengembalikan parameter berbeda yang ditentukan dalam ruang lingkup.
paspor.gunakan(GoogleStrategy baru(
clientID: CLIENT_ID,
rahasia klien: CLIENT_SECRET,
callbackURL: CALLBACK_URL
,
fungsi async(accessToken, refreshToken, profil, email, cb)
kembali cb (null, email.Indo);

));
// menyajikan halaman beranda untuk aplikasi
aplikasi.get('/', (req, res) =>

res.kirimFile(jalur.join(__dirname + '/public/index.html'));
);
// menyajikan halaman sukses untuk aplikasi
aplikasi.get('/success', (req, res) =>

res.kirimFile(jalur.join(__dirname + '/public/success.html'));
);
// pengguna akan diarahkan ke halaman google auth setiap kali mencapai rute '/google/auth'.
aplikasi.dapatkan('/google/aut',
paspor.otentikasi('google', lingkup: ['profil', 'email'])
);
// pengalihan kegagalan otentikasi didefinisikan dalam rute berikut
aplikasi.dapatkan('/diotorisasi',
paspor.otentikasi('google', failureRedirect: '/'),
(permintaan, res) =>

res.redirect('/berhasil');

);
// menjalankan server
aplikasi.dengarkan(PORT, () =>

menghibur.log(“Server berjalan pada Port” + PORT)
)

Menguji Google OAuth

Sekarang aplikasi kita sudah siap, dan kita dapat menguji apakah itu mengizinkan pengguna menggunakan google oauth. Buka direktori root dan jalankan aplikasi.

[dilindungi email]:~$ indeks simpul.js

Sekarang masukkan url aplikasi Anda ke browser.

http://localhost:8000

Ini menunjukkan halaman beranda dengan tag jangkar.

Ketika kita mengklik 'Otorisasi Di Sini', itu akan diarahkan ke halaman google oauth.

Nama aplikasi Anda 'Tes' ditampilkan di halaman otentikasi Google. Saat Anda mengotorisasi akun Anda, itu akan membawa Anda ke halaman resmi.

Kesimpulan

Mengelola nama pengguna dan kata sandi untuk aplikasi web yang berbeda bukanlah tugas yang menyenangkan bagi pengguna. Banyak pengguna meninggalkan aplikasi web Anda tanpa mendaftarkan akun mereka hanya karena mereka tidak ingin mengelola kredensial. Proses otorisasi pada aplikasi web atau situs web Anda dapat disederhanakan dengan menggunakan layanan pihak ketiga seperti Google, Facebook, dll. Layanan ini mengotorisasi pengguna atas nama mereka, dan pengguna tidak perlu mengelola kredensial secara terpisah. Pada artikel ini, kami telah menerapkan protokol google oauth untuk mengizinkan pengguna menggunakan Node.js.

10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...
5 Game Arkade Terbaik untuk Linux
Saat ini, komputer adalah mesin serius yang digunakan untuk bermain game. Jika Anda tidak bisa mendapatkan skor tinggi baru, Anda akan tahu apa yang s...
Pertempuran Untuk Wesnoth 1.13.6 Pengembangan Dirilis
Pertempuran Untuk Westnoth 1.13.6 dirilis bulan lalu, adalah rilis pengembangan keenam dalam 1.13.x series dan memberikan sejumlah peningkatan, teruta...