Đăng nhập không cần password với Facebook Account Kit
Tổng quan
Giới thiệu chung
Tài khoản Package giúp người tiêu dùng đăng ký và đăng nhập ứng dụng một cách nhanh chóng và dễ dàng bằng việc sử dụng số điện thoại hoặc địa chỉ e mail của họ làm thông tin đăng nhập ko cần mật khẩu. Tài khoản Package được hệ thống gửi SMS và e mail của Fb tương trợ mang lại hiệu quả tin cậy và mở rộng với phạm vi tiếp cận toàn cầu. Do sử dụng xác thực bằng e mail và số điện thoại, Tài khoản Package ko yêu cầu tài khoản Fb và là phương thức thay thế lý tưởng để đăng nhập mạng xã hội.
Tài khoản Package được xây dựng cho thế giới của điện thoại di động, cung cấp những phiên làm việc lâu dài, dễ dàng quản lý tài khoản, và đặc thù là ko cần phải nhớ password.
Lúc một người đăng nhật bằng e mail của họ, Tài khoản Package sẽ gửi một liên kết một lần (one-time hyperlink) tới địa chỉ e mail của người đó. SDK sẽ xác định lúc nào thì địa chỉa e mail đó được xác thực (verified).
Lúc người tiêu dùng đăng nhập bằng số điện thoại của họ, Tài khoản Package sẽ hoặc là gửi SMS sở hữu mã xác nhận tới số đó hoặc là xác thực trực tiếp số điện thoại (xem Xác minh nhanh)
Luồng đăng nhập đăng nhập của Accout Package bao gồm cả đăng ký và đăng nhập tài khoản. Nên chúng ta ko cần phải kiểm tra rằng tài khoản đã tồn tài hay là phải tạo một luồng mới để đăng ký consumer. Sau lúc đăng nhập hoặc đăng ký thành công, Tài khoản Package cung cấp cho ứng dụng của bạn thông tin đăng nhập xác thức của người tiêu dùng.
Android SDK cung cấp một exercise và tất cả những gì chúng ta cần làm là khởi tạo và begin exercise đó. Exercise cung cấp consequence tương ứng với đăng nhập thành công hay thất bại. Và bạn hoàn toàn sở hữu thể customized lại giao diện màn hình đăng nhập.
Tài khoản Package tương trợ xác thực dựa trên SMS cho hàng trăm quốc gia. Để biết danh sách những mã quốc gia mà Accout Package hồ trợ cho xác thực dựa trên SMS thì bạn hãy xem Mã quốc gia được tương trợ SMS. Ngày nay Fb chưa thu phí dịch vụ nhắn tin SMS này cho tới 08/2018 . Sau thời khắc đó thì những ứng dụng mà vượt quá 100 000 SMS một tháng sẽ bị tính phí SMS tiêu chuẩn. Khía cạnh tại đây.
Tài khoản Package cũng tương trợ giao diện, tin nhắn SMS và emal xác thực cho rất nhiều tiếng nói khác nhau. Khía cạnh về tiếng nói được tương trợ tịa đây.
Phương pháp hoạt động của Tài khoản Package
Tài khoản Package tạo cơ sở dữ liệu cho ứng dụng. Bạn sở hữu thể truy xuất dữ liệu này bất cứ lúc nào thông qua REST API. Lúc người tiêu dùng đăng nhập ứng dung, cơ sở dữ liệu này sẽ được cập nhật số điện thoại hoặc địa chỉ e mail cùng với Tài khoản IDs sở hữu thể sử dụng trong ứng dụng. Những Tài khoản IDs này là duy nhất cho ứng dụng của bạn. Nếu bạn cũng sử dụng Fb Login cho ứng dụng của bạn thì bạn sở hữu thể yên tâm rằng sẽ ko bao giờ sở hữu sự xung đột với ID của người tiêu dùng trong ứng dụng của Fb.
Tài khoản Package sở hữu 2 luồng đăng nhập, phụ thuộc vào việc người tiêu dùng tìm xác thực bằng số điện thoại hay là e mail.
Luồng xác minh bằng số điện thoại
- Gọi API Tài khoản Package bằng số điện thoại để khởi tạo đăng nhập hoặc đăng ký.
- Server Tài khoản Package sẽ gửi SMS kèm mã xác nhận để tiếp tục đăng nhập. Nếu người tiêu dùng ko nhận được mã qua SMS, Tài khoản Package cung cấp 2 tùy tìm dự phòng để người tiêu dùng lựa tìm:
- Gọi điện thoại — Người tiêu dùng sở hữu thể tìm nhận cuộc gọi điện thoại để lấy mã SMS. Để biết danh sách tiếng nói mà tương trợ cuộc gọi, hãy xem danh sách Tiếng nói được tương trợ cho cuộc gọi điện thoại.
- Thông tin trên Fb — Nếu số điện thoại được liên kết với một tài khoản Fb, người tiêu dùng sở hữu thể tìm nhận thông tin chứa SMS được gửi tới tài khoản đó. Tài khoản Package cũng sở hữu thể xác minh trực tiếp số điện thoại mà ko gửi mã SMS. Xem Xác minh nhanh.
- SDK xác minh mã xác nhận qua SMS.
- Nếu ứng dụng đã bật Luồng mã truy cập ứng dụng, ứng dụng của bạn sẽ nhận được mã truy cập chứa tài khoản ID sau lúc đăng nhập thành công. Nếu ứng dụng chưa bật Luồng mã truy cập ứng dụng, ứng dụng của bạn sẽ nhận được mã ủy quyền mà server của ứng dụng sở hữu thể sử dụng để yêu cầu mã truy cập một cách an toàn.
Luồng xác minh bằng e mail
- Gọi API Tài khoản Package bằng địa chỉ e mail để khởi tạo đăng nhập hoặc đăng ký.
- Server Tài khoản Package sẽ gửi e mail xác nhận tới địa chỉ e mail.
- SDK giám sát trạng thái của e mail xác nhận.
- Nếu ứng dụng đã bật Luồng mã truy cập ứng dụng, ứng dụng của bạn sẽ nhận được mã truy cập chứa tài khoản ID sau lúc đăng nhập thành công. Nếu ứng dụng chưa bật Luồng mã truy cập ứng dụng, ứng dụng của bạn sẽ nhận được mã ủy quyền mà server của ứng dụng sở hữu thể sử dụng để yêu cầu mã truy cập một cách an toàn.
Khía cạnh Luồng mã truy cập ứng dụng tại Mã truy cập và Mã ủy quyền.
Xác minh nhanh
Nếu bạn sử dụng Fb SDK ver 4.17 trở lên thì bạn sở hữu thể sử dụng xác minh nhanh số điện thoại. Nếu người tiêu dùng sở hữu tài khoản Fb chứa số điện thoại họ nhập. Tài khoản Package sẽ tự động xác minh ngay số này mà ko cần họ nhập mã SMS theo cách thủ công.
Xác minh nhanh cũng sở hữu sẵn cho e mail với Fb SDK 4.25 trở lên.
Để xác minh nhanh trên Android, người tiêu dùng phải đáp ứng điều kiện sau:
- Với thiết bị đã cài đặt ứng dụng Fb dành cho Android phiên bản 99 trở lên.
- Với tài khoản Fb bao gồm số điện thoại hoặc e mail họ nhập vào Tài khoản Package.
- Đăng nhập vào tài khoản đó.
Để ứng dụng của bạn hoạt động với tính năng xác minh nhanh trên Android, bạn phải thực hiện những điều sau:
- Phát triển ứng dụng dành cho Android với phiên bản 4.17 trở lên của Fb Android SDK đối với đăng nhập số điện thoại hoặc 4.25 trở lên đối với đăng nhập e mail
- Nhập mã hash cho ứng dụng của bạn trong Bảng điều khiển ứng dụng. Xem Nhận ID ứng dụng Fb trong phần "Điều kiện tiên quyết" của Tài khoản Package dành cho Android.
Tài khoản Package cho Android
Để thiết lập Tài khoản Package trong ứng dụng Android, bạn hãy làm theo những bước sau:
- Điều kiện tiên quyết
- Cấu hình SDK
- Khởi tạo luồng đăng nhập cho SMS
- Khởi tạo luồng đăng nhập cho e mail
- Thực hiện cấu hình bổ sung
- Xử lý onActivityResult()
- Cung cấp nút đăng xuất
- Truy cập thông tin tài khoản trên thiết bị
Bạn cũng sở hữu thể xem undertaking demo việc tích hợp Tài khoản Package ở hyperlink Acount Package Samples for Android trên GitHub.
1. Điều kiện tiên quyết
Trước lúc khởi đầu tích hợp Tài khoản Package vào ứng dụng, hãy đảm bảo bạn đã hoàn thành những điều kiện tiên quyết sau đây.
A. Tạo tài khoản nhà phát triển
Nếu bạn chưa sở hữu tài khoản nhà phát triển trên Fb, hãy tạo một tài khoản. Tài khoản nhà phát triển Fb cấp cho bạn quyền truy cập vào dụng cụ dành cho nhà phát triển và cho phép bạn tạo ứng dụng trên Fb.
Nếu bạn đã sở hữu tài khoản nhà phát triển Fb thì hãy chuyển tới bước tiếp theo.
B. Nhận ID ứng dụng Fb
Tài khoản Package cho Android yêu cầu ID ứng dụng Fb. Hãy làm theo những bước trong Khởi đầu hoặc để sử dụng Khởi đầu nhanh, quý khách xem tại đây.
C. Tậu Cài đặt ứng dụng của bạn
Tậu xem sở hữu cho phép đăng nhập e mail và SMS ko rồi tìm cài đặt bảo mật cho ứng dụng của bạn. Để biết thêm thông tin về cách tìm cài đặt mã truy cập quý khách xem tại đây.
2. Cấu hình SDK
Thêm Fb app ID và Tài khoản Package shopper token của bạn vào file bloghong.com. Bạn sẽ tìm thấy Tài khoản Package shopper token ở trong phần Tài khoản Package của App Dashboard. Tên ứng dụng sẽ được tiêu dùng trong giao diện màn hình đăng nhập.
Thêm implementation dependency với model mới nhất của Tài khoản Package SDK vào file bloghong.comle:
repositories { jcenter() } dependencies { implementation 'com.fb.android:account-kit-sdk:4.+' }
Thêm đoạn dưới đây vào thẻ software của file bloghong.com. Quý khách lưu ý là FACEBOOK_APP_ID và ACCOUNT_KIT_CLIENT_TOKEN lấy từ dasboard của app bạn tạo trên tài khoản fb developer mà mình đánh dấu đỏ như hình bên trên.
<meta-data android:title="com.fb.accountkit.ApplicationName" android:worth="@string/app_name" /> <meta-data android:title="com.fb.sdk.ApplicationId" android:worth="@string/FACEBOOK_APP_ID" /> <meta-data android:title="com.fb.accountkit.ClientToken" android:worth="@string/ACCOUNT_KIT_CLIENT_TOKEN" /> <exercise android:title="com.fb.accountkit.ui.AccountKitActivity" />
AccountKitActivity cũng cần phải khái niệm ở đây để cho phép chạy trong ứng dụng.
Để giảm kích thước của SDK bạn sở hữu thể chỉ định một số tiếng nói được tương trợ.
3. Khởi tạo luồng đăng nhập cho SMS
import bloghong.comuntKit; public static int APP_REQUEST_CODE = 99; public void phoneLogin(closing View view) { closing Intent intent = new Intent(getActivity(), bloghong.coms); bloghong.comuntKitConfigurationBuilder configurationBuilder = new bloghong.comuntKitConfigurationBuilder( bloghong.comE, bloghong.com); // or bloghong.com // … carry out further configuration … bloghong.comxtra( bloghong.comUNT_KIT_ACTIVITY_CONFIGURATION, bloghong.comd()); startActivityForResult(intent, APP_REQUEST_CODE); }
Nếu người tiêu dùng đăng nhập tài khoản Fb trên thiết bị Android của họ và sở hữu số điện thoại đã được xác minh, Tài khoản Package sẽ xác minh họ mà ko yêu cầu họ nhập mã SMS. Bạn sở hữu thể xem thêm Xác minh nhanh.
4. Khởi tạo luồng đăng nhập cho e mail
import bloghong.comuntKit; public static int APP_REQUEST_CODE = 99; public void emailLogin(closing View view) { closing Intent intent = new Intent(getActivity(), bloghong.coms); bloghong.comuntKitConfigurationBuilder configurationBuilder = new bloghong.comuntKitConfigurationBuilder( bloghong.comL, bloghong.com); // or bloghong.com // … carry out further configuration … bloghong.comxtra( bloghong.comUNT_KIT_ACTIVITY_CONFIGURATION, bloghong.comd()); startActivityForResult(intent, APP_REQUEST_CODE); }
Lúc đăng nhập Tài khoản Package bằng e mail, người tiêu dùng sẽ nhận e mail được gửi tới tài khoản của họ. Lúc người tiêu dùng vào liên kết trong e mail trên cùng một thiết bị cài đặt ứng dụng của bạn, họ sẽ trở về ứng dụng để kết thúc hoạt động đăng nhập.
Để đưa người tiêu dùng trở về ứng dụng của bạn, hãy thêm AccountKitEmailRedirectActivity cùng với intent filter sau vào file bloghong.com
<exercise android:title="com.fb.accountkit.ui.AccountKitEmailRedirectActivity"> <intent-filter> <motion android:title="android.intent.motion.VIEW" /> <class android:title="android.intent.class.DEFAULT" /> <class android:title="android.intent.class.BROWSABLE" /> <knowledge android:scheme="@string/ak_login_protocol_scheme" /> </intent-filter> </exercise>
Thêm như sau trong file bloghong.com
// in case your Fb App ID is 1234567, you need to use ak1234567 <string title="ak_login_protocol_scheme">akFACEBOOK_APP_ID</string>
5. Thực hiện cấu hình bổ sung
Đối tượng AccountKitConfigurationBuilder cung cấp thêm nhiều tùy tìm về hành vi và giao diện người tiêu dùng cho việc việc sử dụng Tài khoản Package, do những choice này khác nhiều và tài liệu cũng mô tả hầu hết nên quý khách sở hữu thể tham khảo tạo đây.
6. Xử lý onActivityResult()
Trong onActivityReulst(), bạn tiến hành trích xuất AccountKitLoginResult từ đối số của Intent để xác định trạng thái của lần đăng nhập.
@Override protected void onActivityResult( closing int requestCode, closing int resultCode, closing Intent knowledge) { bloghong.comtivityResult(requestCode, resultCode, knowledge); if (requestCode == APP_REQUEST_CODE) { // affirm that this response matches your request AccountKitLoginResult loginResult = bloghong.comarcelableExtra(AccountKitLoginResult.RESULT_KEY); String toastMessage; if (loginResult.getError() != null) { toastMessage = bloghong.comrror().getErrorType().getMessage(); showErrorActivity(loginResult.getError()); } else if (loginResult.wasCancelled()) { toastMessage = "Login Cancelled"; } else { if (loginResult.getAccessToken() != null) { toastMessage = "Success:" + bloghong.comccessToken().getAccountId(); } else { toastMessage = bloghong.comat( "Success:%s…", bloghong.comuthorizationCode().substring(0,10)); } // When you've got an authorization code, retrieve it from // bloghong.comuthorizationCode() // and go it to your server and trade it for an entry token. // Success! Begin your subsequent exercise… goToMyLoggedInActivity(); } // Floor the consequence to your consumer in an applicable manner. bloghong.comText( this, toastMessage, bloghong.comTH_LONG) .present(); } }
7. Cung cấp nút đăng xuất
Nếu đã khởi đầu phiên đăng nhập với bloghong.comN, thì bạn sẽ sở hữu tùy tìm đăng xuất để xóa AccessToken đã lưu trữ khỏi thiết bị.
import bloghong.comuntKit; … bloghong.comut();
8. Truy cập thông tin tài khoản trên thiết bị
Nếu đã khởi đầu phiên đăng nhập với bloghong.comN, thì bạn sở hữu thể truy cập ID Tài khoản Package, số điện thoại và e mail của tài khoản ngày nay qua lệnh gọi tới getCurrentAccount().
bloghong.comurrentAccount(new AccountKitCallback<Tài khoản>() { @Override public void onSuccess(closing Tài khoản tài khoản) { // Get Tài khoản Package ID String accountKitId = bloghong.comd(); // Get telephone quantity PhoneNumber phoneNumber = bloghong.comhoneNumber(); String phoneNumberString = bloghong.comring(); // Get e mail String e mail = bloghong.commail(); } @Override public void onError(closing AccountKitError error) { // Deal with Error } }); Cấu hình tùy tìm
Về cơ bản thì quý khách chỉ cần như trên là sở hữu thể thực hiện đăng nhập ko cần password với tài khoản equipment. Ngoài ra thì Tài khoản Package còn sở hữu thêm một số tùy tìm cho quý khách nếu bạn phải tùy biến. Nếu đi vào yếu tố những phần tùy tìm này thì sẽ khá mất nhiều thời kì nên mình sẽ chỉ ghi lại những phần chính, quý khách sở hữu thể tìm hiểu thêm.
Tùy chỉnh cấu hình
Một số tính năng của Tài khoản Package SDK chỉ khả dụng lúc mà một số quyền Android được cấp cho ứng dụng của bạn. Dù cho nó ko cần để Tài khoản Package sở hữu thể hoạt động, tuy nhiên nó cũng giúp giảm nhiều công sức cho quá trình đăng nhập. Khía cạnh hơn về tùy chỉnh cấu hình.
Quyền trên Android đối với số điện thoại và SMS (tùy tìm)
Nếu người tiêu dùng đã cài đặt Dịch vụ của Google Play trên thiết bị, Tài khoản Package sở hữu thể tự động điền số điện thoại và mã SMS của họ.
Tính năng e mail bổ sung (Tùy tìm)
- Hiển thị danh sách những e mail khả dụng trên thiết bị.
- Khởi chạy ứng dụng từ e mail Tài khoản Package
Chỉ định tiếng nói được tương trợ (tùy tìm)
Nếu ko cần bản địa hóa ứng dụng thành tất cả tiếng nói được Tài khoản Package tương trợ, bạn chỉ sở hữu thể chỉ định tiếng nói mình muốn trong defaultConfig của bloghong.comle. Thao tác này sẽ xóa mọi chuỗi bản địa hóa ko cấp thiết và giảm dung lượng của ứng dụng.
defaultConfig { // Non-obligatory: Specify the language(s) your app helps. resConfigs "en", "fr", "vi" }
ProGuard Guidelines
-keep class bloghong.combookSdk { boolean isInitialized(); } -keep class bloghong.comventsLogger { bloghong.comventsLogger newLogger(android.content material.Context); void logSdkEvent(java.lang.String, bloghong.comle, bloghong.comle); }
Tùy chỉnh giao diện
Giao diện của những màn hình login được cung cấp bởi SDK. Những màn hình login được khởi chạy như là một Exercise mới. Bạn hoàn toàn sở hữu thể tùy biến lại những màn này theo ý mình, sở hữu điều bạn nên tham khảo tài liệu hướng dẫn của Fb về tùy chỉnh giao diện.
Supply code
Acount Package Samples for Android
Nguồn