Buat aplikasi React dengan menggunakan AWS Amplify dan tambahkan autentikasi dengan Amazon Cognito - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat aplikasi React dengan menggunakan AWS Amplify dan tambahkan autentikasi dengan Amazon Cognito

Rishi Singla, Amazon Web Services

Ringkasan

Pola ini menunjukkan cara menggunakan AWS Amplify untuk membuat aplikasi berbasis React dan cara menambahkan otentikasi ke frontend dengan menggunakan Amazon Cognito. AWS Amplify terdiri dari seperangkat alat (kerangka open source, lingkungan pengembangan visual, konsol) dan layanan (aplikasi web dan hosting situs web statis) untuk mempercepat pengembangan aplikasi seluler dan web di AWS.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • Node.js dan npm diinstal pada mesin Anda

Versi produk

  • Node.js versi 10.x atau yang lebih baru (untuk memverifikasi versi Anda, jalankan node -v di jendela terminal)

  • npm versi 6.x atau yang lebih baru (untuk memverifikasi versi Anda, jalankan npm -v di jendela terminal)

Arsitektur

Tumpukan teknologi target

  • AWS Amplify

  • Amazon Cognito

Alat

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Instal Amplify CLI.

Amplify CLI adalah toolchain terpadu untuk membuat layanan AWS Cloud untuk aplikasi React Anda. Untuk menginstal Amplify CLI, jalankan:

npm install -g @aws-amplify/cli

npm akan memberi tahu Anda jika versi utama baru tersedia. Jika demikian, gunakan perintah berikut untuk memutakhirkan versi npm Anda:

npm install -g npm@9.8.0

di mana 9.8.0 mengacu pada versi yang ingin Anda instal.

Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Buat aplikasi React.

Untuk membuat aplikasi React baru, gunakan perintah:

npx create-react-app amplify-react-application

di ampify-react-application mana nama aplikasinya.

Ketika aplikasi telah berhasil dibuat, Anda akan melihat pesan:

Success! Created amplify-react-application

Direktori dengan berbagai subfolder akan dibuat untuk aplikasi React.

Pengembang aplikasi

Luncurkan aplikasi di mesin lokal Anda.

Buka direktori amplify-react-application yang dibuat pada langkah sebelumnya dan jalankan perintah:

amplify-react-application% npm start

Ini meluncurkan aplikasi React di mesin lokal Anda.

Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Konfigurasikan Amplify untuk terhubung ke akun AWS Anda.

Konfigurasikan Amplify dengan menjalankan perintah:

amplify-react-application % amplify configure

Amplify CLI meminta Anda untuk mengikuti langkah-langkah ini untuk mengatur akses ke akun AWS Anda:

  1. Masuk ke akun administrator AWS Anda.

  2. Tentukan Wilayah AWS yang ingin Anda gunakan.

  3. Buat pengguna AWS Identity and Access Management (IAM) dengan akses terprogram, dan lampirkan kebijakan AdministratorAccess-Amplify izin ke pengguna.

  4. Buat dan kemudian salin ID kunci akses dan kunci akses rahasia.

  5. Masukkan detail ini di terminal.

  6. Buat nama profil atau gunakan profil default.

Awas

Skenario ini mengharuskan pengguna IAM dengan akses terprogram dan kredensil jangka panjang, yang menghadirkan risiko keamanan. Untuk membantu mengurangi risiko ini, kami menyarankan agar Anda memberikan pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan. Kunci akses dapat diperbarui jika perlu. Untuk informasi selengkapnya, lihat Memperbarui kunci akses di Panduan Pengguna IAM.

Langkah-langkah ini muncul di terminal sebagai berikut.

Follow these steps to set up access to your AWS account: Sign in to your AWS administrator account: https://console.aws.amazon.com/ Press Enter to continue Specify the AWS Region ? region: us-east-1 Follow the instructions at https://docs.amplify.aws/cli/start/install/#configure-the-amplify-cli to complete the user creation in the AWS console https://console.aws.amazon.com/iamv2/home#/users/create Press Enter to continue Enter the access key of the newly created user: ? accessKeyId: ******************** ? secretAccessKey: **************************************** This would update/create the AWS Profile in your local machine ? Profile Name: new Successfully set up the new user.

Untuk informasi selengkapnya tentang langkah-langkah ini, lihat dokumentasi di Amplify Dev Center.

AWS Umum, Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Inisialisasi Amplify.

  1. Untuk menginisialisasi Amplify di direktori baru, jalankan:

    amplify init

    Amplify meminta Anda untuk nama proyek dan parameter konfigurasi

  2. Tentukan semua parameter, lalu tekan Y untuk menginisialisasi proyek dengan konfigurasi yang ditentukan.

    Project information | Name: amplifyreactproject | Environment: dev | Default editor: Visual Studio Code | App type: javascript | Javascript framework: react | Source Directory Path: src | Distribution Directory Path: build | Build Command: npm run-script build | Start Command: npm run-script start
  3. Pilih profil yang Anda buat pada langkah sebelumnya. Sumber daya akan diterapkan ke dev lingkungan dalam proyek Amplify yang Anda buat.

  4. Untuk mengonfirmasi bahwa sumber daya telah dibuat, Anda dapat membuka konsol AWS Amplify dan melihat CloudFormation templat AWS yang digunakan untuk membuat sumber daya dan detailnya.

    Deploying root stack amplifyreactproject [ ====================-------------------- ] 2/4 amplify-amplifyreactproject-d… AWS::CloudFormation::Stack CREATE_IN_PROGRESS UnauthRole AWS::IAM::Role CREATE_COMPLETE DeploymentBucket AWS::S3::Bucket CREATE_IN_PROGRESS AuthRole AWS::IAM::Role CREATE_COMPLETE
Pengembang aplikasi, AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Menambahkan otentikasi.

Anda dapat menggunakan amplify add <category> perintah untuk menambahkan fitur seperti login pengguna atau API backend. Pada langkah ini Anda akan menggunakan perintah untuk menambahkan otentikasi.

Amplify menyediakan layanan otentikasi backend dengan Amazon Cognito, pustaka frontend, dan komponen UI Authenticator drop-in. Fitur termasuk pendaftaran pengguna, masuk pengguna, otentikasi multi-faktor, masuk pengguna, dan masuk tanpa kata sandi. Anda juga dapat mengautentikasi pengguna dengan mengintegrasikan dengan penyedia identitas federasi seperti Amazon, Google, dan Facebook. Kategori otentikasi Amplify terintegrasi secara mulus dengan kategori Amplify lainnya seperti API, analitik, dan penyimpanan, sehingga Anda dapat menentukan aturan otorisasi untuk pengguna yang diautentikasi dan tidak diautentikasi.

  1. Untuk mengonfigurasi autentikasi aplikasi React Anda, jalankan perintah:

    amplify-react-application1 % amplify add auth

    Ini menampilkan informasi dan petunjuk berikut. Anda dapat memilih konfigurasi yang sesuai tergantung pada kebutuhan bisnis dan keamanan Anda.

    Using service: Cognito, provided by: awscloudformation The current configured provider is Amazon Cognito. Do you want to use the default authentication and security configuration? (Use arrow keys) ❯ Default configuration Default configuration with Social Provider (Federation) Manual configuration I want to learn more.
  2. Untuk contoh sederhana, pilih konfigurasi default dan kemudian pilih mekanisme masuk untuk pengguna (dalam hal ini, email):

    How do you want users to be able to sign in? Username ❯ Email Phone Number Email or Phone Number I want to learn more.
  3. Lewati pengaturan lanjutan untuk menyelesaikan penambahan sumber daya otentikasi:  

    Do you want to configure advanced settings? (Use arrow keys) ❯ No, I am done. Yes, I want to make some additional changes.
  4. Bangun sumber daya backend lokal Anda dan sediakan di cloud:

    amplify-react-application1 % amplify push

    Perintah ini membuat perubahan yang sesuai pada kumpulan pengguna Congito di akun Anda.

  5. Tekan Y untuk mengkonfigurasi auth sumber daya dengan menggunakan CloudFormation.

    Ini mengonfigurasi sumber daya berikut:

    UserPool AWS::Cognito::UserPool CREATE_COMPLETE UserPoolClientWeb AWS::Cognito::UserPoolClient CREATE_COMPLETE UserPoolClientWeb AWS::Cognito::UserPoolClient CREATE_COMPLETE UserPoolClientRole AWS::IAM::Role CREATE_COMPLETE UserPoolClientLambda AWS::Lambda::Function CREATE_COMPLETE UserPoolClientLambdaPolicy AWS::IAM::Policy CREATE_COMPLETE UserPoolClientLogPolicy AWS::IAM::Policy CREATE_IN_PROGRESS

    Anda juga dapat menggunakan konsol AWS Cognito untuk melihat sumber daya ini (cari kumpulan pengguna Cognito dan kumpulan identitas).

    Langkah ini memperbarui aws-exports.js file di src folder untuk aplikasi React Anda dengan kumpulan pengguna Cognito dan konfigurasi kumpulan identitas.

Pengembang aplikasi, AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Ubah file App.js.

Di src folder, buka dan revisi App.js file. File yang dimodifikasi akan terlihat seperti ini:

{ App.Js File after modifications: import React from 'react'; import logo from './logo.svg'; import './App.css'; import { Amplify } from 'aws-amplify'; import { withAuthenticator, Button, Heading } from '@aws-amplify/ui-react'; import awsconfig from './aws-exports'; Amplify.configure(awsconfig); function App({ signOut }) { return ( <div> <h1>Thankyou for doing verification</h1> <h2>My Content</h2> <button onClick={signOut}>Sign out</button> </div> ); } export default withAuthenticator(App);
Pengembang aplikasi

Impor paket React.

App.jsFile mengimpor dua paket React. Instal paket-paket ini dengan menggunakan perintah:

amplify-react-application1 % npm install --save aws-amplify @aws-amplify/ui-react
Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Luncurkan aplikasi.

Luncurkan aplikasi React di mesin lokal Anda:

amplify-react-application1 % npm start
Pengembang aplikasi, AWS Umum

Periksa otentikasi.

Periksa apakah aplikasi meminta parameter otentikasi. (Dalam contoh kami, kami telah mengonfigurasi email sebagai metode masuk.)

UI frontend harus meminta Anda untuk kredensi masuk dan memberikan opsi untuk membuat akun.

Anda juga dapat mengonfigurasi proses build Amplify untuk menambahkan backend sebagai bagian dari alur kerja penerapan berkelanjutan. Namun, pola ini tidak mencakup opsi itu.

Pengembang aplikasi, AWS Umum

Sumber daya terkait