Auth Firebase Node.js

4 min read Jun 28, 2024
Auth Firebase Node.js

Menggunakan Firebase Authentication dengan Node.js

Firebase Authentication adalah layanan yang memberikan cara mudah untuk mengotentikasi pengguna di aplikasi Anda. Layanan ini mendukung banyak metode autentikasi, termasuk email/kata sandi, akun Google, Facebook, Twitter, dan lainnya. Di artikel ini, kita akan membahas cara mengintegrasikan Firebase Authentication ke dalam aplikasi Node.js Anda.

Prasyarat

  • Akun Firebase
  • Proyek Firebase
  • Node.js dan npm (atau yarn)

Langkah-langkah

1. Inisialisasi Proyek Firebase

  • Buka konsol Firebase dan pilih proyek Anda.
  • Pada menu sebelah kiri, klik Authentication.
  • Pada tab Sign-in method, aktifkan metode autentikasi yang Anda ingin gunakan.

2. Instal Paket Firebase

  • Buka terminal di direktori proyek Anda.
  • Jalankan perintah berikut untuk menginstal paket Firebase:
npm install firebase-admin

3. Inisialisasi Admin SDK

  • Buat file bernama firebase.js (atau nama file yang Anda inginkan) di direktori proyek Anda.
  • Di dalam file, tambahkan kode berikut untuk menginisialisasi Admin SDK:
const admin = require('firebase-admin');

const serviceAccount = require('./path/to/serviceAccountKey.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
});

// Get a database reference to our posts
const db = admin.firestore();
  • Ganti path/to/serviceAccountKey.json dengan jalur absolut ke file kunci layanan Anda. Anda dapat mengunduh file kunci layanan dari konsol Firebase di tab Settings > Service accounts.

4. Buat Rute Autentikasi

  • Buat file bernama auth.js (atau nama file yang Anda inginkan) di direktori proyek Anda.
  • Di dalam file, tambahkan kode berikut untuk membuat rute autentikasi:
const express = require('express');
const router = express.Router();
const admin = require('firebase-admin');

router.post('/signup', async (req, res) => {
  try {
    const { email, password } = req.body;

    const userRecord = await admin.auth().createUser({
      email: email,
      password: password,
    });

    res.json({ success: true, uid: userRecord.uid });
  } catch (error) {
    res.status(500).json({ success: false, error: error.message });
  }
});

router.post('/signin', async (req, res) => {
  try {
    const { email, password } = req.body;

    const userRecord = await admin.auth().signInWithEmailAndPassword(email, password);

    res.json({ success: true, uid: userRecord.uid });
  } catch (error) {
    res.status(500).json({ success: false, error: error.message });
  }
});

module.exports = router;
  • Kode ini membuat dua rute:
    • /signup: untuk mendaftarkan pengguna baru.
    • /signin: untuk masuk menggunakan email dan kata sandi.
  • Anda dapat menambahkan rute lain untuk metode autentikasi lainnya seperti Google, Facebook, dan Twitter.

5. Integrasikan Rute Autentikasi ke Aplikasi Anda

  • Di file utama aplikasi Anda (misalnya, app.js), tambahkan kode berikut untuk mengintegrasikan rute autentikasi:
const express = require('express');
const app = express();
const authRouter = require('./auth');

app.use('/auth', authRouter);

app.listen(3000, () => {
  console.log('Server listening on port 3000');
});

Menggunakan UID Pengguna

  • Setelah pengguna berhasil masuk, Anda dapat mengambil UID-nya dari userRecord.uid.
  • Anda dapat menggunakan UID ini untuk mengidentifikasi pengguna dan membatasi akses ke data atau fitur tertentu.

Kesimpulan

Dengan menggunakan Firebase Authentication, Anda dapat dengan mudah mengotentikasi pengguna di aplikasi Node.js Anda. Layanan ini menyediakan berbagai metode autentikasi dan alat yang diperlukan untuk membangun sistem keamanan yang kuat.

Related Post


Latest Posts