Memulai AWS

Membangun Aplikasi React Full-Stack

Membuat aplikasi web sederhana menggunakan AWS Amplify

Modul 3: Menambahkan Autentikasi

Dalam modul ini, Anda akan menggunakan Amplify CLI dan pustaka untuk mengonfigurasi serta menambahkan autentikasi ke aplikasi Anda

Gambaran Umum

Fitur berikutnya yang akan Anda tambahkan adalah autentikasi. Dalam modul ini, Anda akan belajar cara mengautentikasi pengguna menggunakan Amplify CLI dan pustaka dengan memanfaatkan Amazon Cognito, sebuah layanan identitas pengguna terkelola.

Anda juga akan belajar cara menggunakan pustaka komponen Amplify UI untuk menyusun seluruh aliran autentikasi pengguna, sehingga pengguna dapat mendaftar, masuk, dan mengatur ulang kata sandi mereka hanya dengan beberapa baris kode.

Hal-hal yang akan Anda capai

Di dalam modul ini, Anda akan:
  • Menginstal pustaka Amplify
  • Membuat dan melakukan deployment layanan autentikasi
  • Mengonfigurasikan aplikasi React Anda untuk menyertakan autentikasi

Konsep utama

Pustaka Amplify – Pustaka Amplify memungkinkan Anda berinteraksi dengan layanan AWS dari aplikasi web atau seluler.

Autentikasi – Di dalam perangkat lunak, autentikasi adalah proses memverifikasi dan mengelola identitas pengguna menggunakan layanan autentikasi atau API.

 Waktu penyelesaian

10 menit

 Layanan yang digunakan

Implementasi

  • Kita akan membutuhkan dua pustaka Amplify untuk proyek ini. Pustaka aws-amplify utama berisi semua API sisi klien untuk berinteraksi dengan berbagai layanan AWS yang akan kita gunakan untuk bekerja dan pustaka @aws-amplify/ui-react berisi komponen UI khusus kerangka kerja. Instal pustaka ini di root proyek.

    npm install aws-amplify @aws-amplify/ui-react
  • Gunakan CLI Amplify untuk membuat layanan autentikasi:

    amplify add auth
    
    ? Do you want to use the default authentication and security configuration? Default configuration
    ? How do you want users to be able to sign in? Username
    ? Do you want to configure advanced settings? No, I am done.
  • Setelah layanan autentikasi dikonfigurasi secara lokal, kita dapat men-deploy layanan ini dengan menjalankan perintah push Amplify:

    amplify push --y
  • CLI telah membuat dan akan terus memperbarui file bernama aws-exports.js yang terletak di direktori src proyek kita. Kita akan menggunakan file ini untuk memberi tahu proyek React tentang berbagai sumber daya AWS yang tersedia di proyek Amplify kita.

    Untuk mengonfigurasi aplikasi kita menggunakan sumber daya ini, buka src/index.js dan tambahkan kode berikut di bawah impor terakhir:

    import { Amplify } from 'aws-amplify';
    import config from './aws-exports';
    Amplify.configure(config);
    
  • Selanjutnya, buka src/App.js dan perbarui dengan kode berikut:

    import logo from "./logo.svg";
    import "@aws-amplify/ui-react/styles.css";
    import {
      withAuthenticator,
      Button,
      Heading,
      Image,
      View,
      Card,
    } from "@aws-amplify/ui-react";
    
    function App({ signOut }) {
      return (
        <View className="App">
          <Card>
            <Image src={logo} className="App-logo" alt="logo" />
            <Heading level={1}>We now have Auth!</Heading>
          </Card>
          <Button onClick={signOut}>Sign Out</Button>
        </View>
      );
    }
    
    export default withAuthenticator(App);

    Dalam kode ini, kami telah menggunakan komponen withAuthenticator. Komponen ini akan membentuk seluruh alur autentikasi pengguna yang mengizinkan pengguna untuk mendaftar, masuk, mengatur ulang kata sandi mereka, dan mengonfirmasi akses masuk untuk autentikasi multifaktor (MFA). Kami juga telah menambahkan tombol Keluar untuk mengeluarkan pengguna.

  • Tunggu hingga sumber daya selesai men-deploy, lalu jalankan aplikasi untuk melihat alur Autentikasi baru yang melindungi aplikasi:

    npm start

    Di sini, Anda dapat mencoba mendaftar, yang akan mengirimkan kode verifikasinya ke email Anda. Gunakan kode verifikasi untuk masuk ke aplikasi. Saat masuk, Anda akan melihat tombol Keluar, yang akan mengeluarkan Anda dan memulai ulang alur autentikasi.

  • Selanjutnya, kita perlu mengonfigurasi proses pembangunan Amplify untuk menambahkan backend sebagai bagian dari alur kerja deployment berkelanjutan. Dari jendela terminal Anda, jalankan:

    amplify console
    ? Which site do you want to open? AWS console

    Konsol Amplify akan terbuka. Dari panel navigasi, pilih Pengaturan aplikasi > Pengaturan build dan ubah untuk menambahkan bagian backend (baris 2-7 dalam kode di bawah ini) ke amplify.yml Anda. Setelah melakukan pengeditan, pilih Simpan.

    version: 1
    backend:
      phases:
        build:
          commands:
            - '# Execute Amplify CLI with the helper script'
            - amplifyPush --simple
    frontend:
      phases:
        preBuild:
          commands:
            - yarn install
        build:
          commands:
            - yarn run build
      artifacts:
        baseDirectory: build
        files:
          - '**/*'
      cache:
        paths:
          - node_modules/**/*

    Gulir ke bawah, ke Pengaturan gambar build dan pilih Edit. Pilih menu tarik-turun Tambahkan penimpaan versi paket dan pilih CLI Amplify. Tindakan ini harus default ke versi terbaru, seperti yang ditunjukkan pada gambar.

    Selanjutnya, perbarui cabang frontend Anda untuk mengarahkan ke lingkungan backend yang baru saja Anda buat. Pada nama cabang, pilih Edit, lalu arahkan cabang utama Anda ke backend penahapan yang baru saja Anda buat. Pilih Simpan.

    Jika Anda melihat pesan Siapkan peran layanan..., ikuti petunjuk yang diberikan sebelum melanjutkan untuk menyiapkan dan melampirkan peran layanan ke aplikasi Anda.

  • Sekarang, kembali ke jendela terminal lokal Anda dan deploy perubahan ke GitHub untuk memulai build baru di konsol Amplify:

    git add .
    git commit -m "added auth"
    git push origin main
    

Kesimpulan

Sekarang, Anda telah menambahkan autentikasi pengguna ke aplikasi hanya dengan beberapa baris kode. Pada modul berikutnya, kami akan menambahkan API ke aplikasi Anda.

Apakah halaman ini membantu?

Menambahkan API dan Basis Data