Amplify trong game là gì

Amplify trong game là gì
Amplify trong game là gì
Amplify trong game là gì
What You'll Be Creating

AWS Amplify là một thư viện nguồn mở cho phép các nhà phát triển, và trong trường hợp của chúng ta là các nhà phát triển cho nền tảng di động, thêm một loạt các chức năng có ích cho các ứng dụng bao gồm phân tích, thông báo đẩy, lưu trữ và xác thực.

Amplify không chỉ hoạt động với React Native, mà còn với Vue, Angular, Ionic, React cho web và bất kỳ framework JavaScript nào. Trong bài hướng dẫn này, chúng tôi sẽ minh hoạ một số tính năng cốt lõi của nó trong một ứng dụng React Native.

Điều tuyệt vời về thư viện này là nó đóng gói tất cả những thiết lập và cấu hình phức tạp cho các tính năng vào một mô-đun dễ sử dụng mà chúng ta có thể thêm vào dự án bằng cách sử dụng NPM.

Chúng ta sẽ tìm hiểu AWS Amplify trong ba phần: xác thực, lưu trữ và phân tích.

Cài đặt và thiết lập React Native

Nếu bạn muốn theo dõi, hãy tạo một dự án React Native bằng cách sử dụng Expo (Tạo Ứng dụng React Native) hoặc React Native CLI:

react-native init RNAmplify

or

create-react-native-app RNAmplify

Tiếp theo, hãy tiến hành cài đặt thư việnaws-amplifybằng cách sử dụng yarn hoặc npm:

yarn add aws-amplify

Nếu bạn đang sử dụng Expo, bạn có thể bỏ qua bước tiếp theo (liên kết) vì Expo đã đi kèm các phụ thuộc cho việc hỗ trợ Amazon Cognito.

Nếu bạn không sử dụng Expo, chúng ta cần liên kết thư viện Cognito (Amazon Cognito xử lý xác thực) đã được cài đặt khi chúng ta thêm aws-amplify:

react-native link amazon-cognito-identity-js

Thiết lập AWS

Bây giờ thì dự án React Native đã được tạo ra và thiết lập cấu hình, chúng ta cần thiết lập các dịch vụ Amazon mà chúng ta sẽ tương tác với chúng.

Bên trong thư mục của dự án mới, chúng ta sẽ tạo dự án Mobile Hub mới cho hướng dẫn này. Để tạo ra dự án này, chúng ta sẽ sử dụng AWSMobile CLI, nhưng bạn có thể sử dụng console nếu bạn là người dùng cao cấp hơn. Tôi đã đăng một video lên YouTube với một cái nhìn tổng quan về AWSMobile CLInếu bạn muốn tìm hiểu thêm về nó.

Bây giờ hãy tạo một dự án Mobile Hub mới trong thư mục gốc của dự án mới của chúng ta:

awsmobile init

Sau khi bạn đã tạo ra dự án của mình và có được tập tin aws-exports-file (tập tin này được tự động tạo ra cho bạn bằng cách chạy awsmobile init), chúng ta cần phải cấu hình dự án React Native với dự án AWS của chúng ta sử dụng AWS Amplify.

Để làm như vậy, chúng ta sẽ truy cập vào App.jsbên dưới dòng import sau cùng và thêm ba dòng code sau đây:

import Amplify, { Auth } from 'aws-amplify' import config from './aws-exports' Amplify.configure(config)

Xác thực

Xác thực với Amplify được thực hiện bằng cách sử dụng dịch vụ Amazon Cognito. Chúng ta sẽ sử dụng dịch vụ này để cho phép người dùng đăng nhập và đăng ký vào ứng dụng của chúng ta!

Thêm Xác thực bằng AWSMobile CLI

Hãy thêm người dùng đăng nhập và Amazon Cognito vào dự án Mobile Hub của chúng ta. Trong thư mục gốc, hãy chạy các lệnh sau:

awsmobile user-signin enable awsmobile push

Bây giờ, chúng ta sẽ có một user pool Amazon Cognito mới được thiết lập và sẵn sàng. (Nếu bạn muốn xem chi tiết dịch vụ mới này, hãy chuyển đến AWS Console, nhấp vào Cognito và chọn tên của dự án AWSMobile mà bạn đã tạo ra.)

Tiếp theo, hãy tích hợp Xác thực với Amazon Cognito và AWS Amplify.

Lớp Auth

Hãy bắt đầu bằng cách xem xét lớp chính mà bạn sẽ sử dụng để truy cập đầy đủ vào các dịch vụ Amazon Cognito, đó là lớp Auth.

Lớp Auth có nhiều phương thức cho phép bạn thực hiện mọi thứ từ đăng ký và đăng nhập người dùng đến thay đổi mật khẩu và những thứ khác.

Cũng đơn giản khi làm việc với xác thực hai lớp với AWS Amplify bằng lớp Auth, như chúng ta sẽ thấy trong ví dụ sau đây.

Ví dụ

Hãy cùng xem cách bạn có thể đăng ký và đăng nhập một người dùng bằng Amazon Cognito và lớp Auth.

Chúng ta có thể hoàn thành tiến trình đăng ký và đăng nhập với tương đối ít việc phải làm! Chúng ta sẽ sử dụng các phương thức signUp, confirmSignUp, signIn và confirmSignIn của lớp Auth.

Trong App.js, hãy tạo một vài phương thức dùng để xử lý người dùng đăng ký với xác thực hai lớp cũng như một số trạng thái để lưu giữ đầu vào của người dùng:

state = { username: '', email: '', phone_number: '', password: '', authCode: '', user: {} } onChangeText = (key, value) => { this.setState({ [key]: value }) } signUp() { const { username, password, email, phone_number } = this.state Auth.signUp({ username, password, attributes: { phone_number, email } }) .then(() => console.log('user sign up success!!')) .catch(err => console.log('error signing up user: ', err)) } confirmSignUp() { Auth.confirmSignUp(this.state.username, this.state.authCode) .then(() => console.log('confirm user sign up success!!')) .catch(err => console.log('error confirming signing up user: ', err)) }

signUp tạo yêu cầu đăng ký ban đầu, sẽ gửi một tin nhắn SMS tới người dùng mới để xác nhận số điện thoại của họ. confirmSignUp lấy code SMS và tên người dùng và xác nhận người dùng mới trong Amazon Cognito.

Chúng ta cũng sẽ tạo ra một giao diện người dùng cho form nhập liệu và một cái nút, và kết nối các phương thức của lớp với các thành phần UI này. Cập nhật phương thức render như sau:

render() { return ( this.onChangeText('username', val)} /> this.onChangeText('password', val)} /> this.onChangeText('email', val)} /> this.onChangeText('phone_number', val)} />