Cách Uber giảm 4 triệu lượt đăng nhập thủ công mỗi năm bằng API Khôi phục thông tin đăng nhập
Thời gian đọc: 5 phút
Uber là công ty chia sẻ chuyến đi lớn nhất thế giới, giúp hàng triệu người di chuyển từ nơi này đến nơi khác, đồng thời hỗ trợ giao đồ ăn, vận chuyển y tế và vận chuyển hàng hoá. Sự đơn giản trong việc truy cập là yếu tố then chốt cho thành công của Uber. Khi chuyển sang thiết bị mới, người dùng mong muốn có một quá trình chuyển đổi liền mạch mà không cần đăng nhập lại vào ứng dụng Uber hoặc trải qua quy trình xác thực bằng mật khẩu một lần qua SMS. Việc người dùng thường xuyên đổi thiết bị vừa là một thách thức vừa là cơ hội để giữ chân người dùng hiệu quả.
Để duy trì trải nghiệm liền mạch cho người dùng, các kỹ sư của Uber đã chuyển sang dùng tính năng Khôi phục thông tin xác thực, một công cụ thiết yếu trong thời điểm mà 40% người dùng ở Hoa Kỳ thay điện thoại thông minh mỗi năm. Sau khi đánh giá nhu cầu của người dùng và tạo nguyên mẫu mã, họ đã ra mắt tính năng hỗ trợ Khôi phục thông tin xác thực trong ứng dụng Uber dành cho hành khách. Để xác thực rằng việc khôi phục thông tin xác thực giúp loại bỏ trở ngại khi đăng nhập lại, nhóm Uber đã chạy thành công một thử nghiệm A/B trong khoảng thời gian 5 tuần. Việc tích hợp này giúp giảm số lượt đăng nhập thủ công. Khi áp dụng cho cơ sở người dùng khổng lồ của Uber, ước tính sẽ giảm được 4 triệu lượt đăng nhập thủ công mỗi năm.
Loại bỏ trở ngại khi đăng nhập bằng tính năng Khôi phục thông tin đăng nhập
Trước đây, đã có những nỗ lực khôi phục tài khoản trên thiết bị mới bằng các giải pháp như sao lưu dữ liệu thông thường và BlockStore, mặc dù cả hai giải pháp đều yêu cầu chia sẻ trực tiếp mã thông báo xác thực, từ thiết bị nguồn đến thiết bị đích. Vì thông tin mã thông báo có tính nhạy cảm cao, nên các giải pháp này chỉ được dùng ở một mức độ nhất định để tự động điền trước các trường đăng nhập trên thiết bị đích và giảm bớt một số trở ngại trong quy trình đăng nhập. Khoá truy cập cũng được dùng để cung cấp một phương pháp Đăng nhập nhanh chóng và an toàn, nhưng bản chất do người dùng khởi tạo của khoá truy cập lại hạn chế tác động của khoá truy cập đối với quá trình chuyển đổi thiết bị liền mạch.
Thomás Oliveira Horta, kỹ sư Android tại Uber, cho biết: "Một số người dùng không sử dụng ứng dụng Uber hằng ngày, nhưng họ mong đợi ứng dụng sẽ hoạt động khi cần". "Khi mở ứng dụng để đặt xe trên chiếc điện thoại Android mới, bạn phát hiện ra mình đã bị đăng xuất. Đây có thể là một trải nghiệm khó chịu và gây phiền toái."
Nhờ Khôi phục thông tin xác thực, các kỹ sư đã có thể thu hẹp khoảng cách này. API này tạo một mã thông báo duy nhất trên thiết bị cũ. Mã này sẽ được di chuyển liền mạch và thầm lặng sang thiết bị mới khi người dùng khôi phục dữ liệu ứng dụng trong quy trình làm quen tiêu chuẩn. Quá trình này tận dụng cơ chế sao lưu và khôi phục gốc của Hệ điều hành Android, đảm bảo việc chuyển khoá khôi phục cùng với dữ liệu của ứng dụng một cách an toàn. Phương pháp đơn giản hoá này đảm bảo quy trình chuyển tài khoản đơn giản và an toàn, đáp ứng các yêu cầu bảo mật của Uber mà không cần người dùng nhập thêm thông tin hoặc tốn thêm chi phí phát triển.
Lưu ý: Khoá khôi phục và khoá truy cập sử dụng cùng một cách triển khai máy chủ cơ bản. Tuy nhiên, khi lưu các giá trị này vào cơ sở dữ liệu, bạn phải phân biệt giữa các giá trị đó. Sự khác biệt này rất quan trọng vì người dùng có thể trực tiếp quản lý khoá truy cập do người dùng tạo, trong khi khoá khôi phục do hệ thống quản lý và bị ẩn khỏi giao diện người dùng.
Thomás cho biết: "Khi áp dụng tính năng Khôi phục thông tin xác thực trên ứng dụng Uber dành cho hành khách, chúng tôi nhận thấy người dùng sử dụng tính năng này một cách nhất quán". "Trung bình có 10.000 người dùng riêng biệt hằng ngày đã đăng nhập bằng tính năng Khôi phục thông tin đăng nhập trong giai đoạn triển khai hiện tại và họ đã có trải nghiệm liền mạch khi mở ứng dụng lần đầu tiên trên thiết bị mới. Chúng tôi dự kiến con số đó sẽ tăng gấp đôi sau khi chúng tôi mở rộng phạm vi triển khai cho toàn bộ cơ sở người dùng của mình."
Những điều cần cân nhắc khi triển khai
Thomás cho biết: "Quá trình tích hợp khá dễ dàng, chỉ cần điều chỉnh một chút ở phía Android bằng cách làm theo mã mẫu và tài liệu". "Ứng dụng của chúng tôi đã sử dụng Trình quản lý thông tin xác thực cho khoá truy cập và phần phụ trợ chỉ cần một vài điều chỉnh nhỏ. Do đó, chúng tôi chỉ cần cập nhật phần phụ thuộc của Trình quản lý thông tin xác thực lên phiên bản mới nhất để có quyền truy cập vào Restore Credentials API mới. Chúng tôi đã tạo một khoá khôi phục thông qua cùng một quy trình tạo khoá truy cập và khi ứng dụng của chúng tôi được khởi chạy trên một thiết bị mới, ứng dụng sẽ chủ động kiểm tra khoá này bằng cách cố gắng truy xuất khoá truy cập ở chế độ im lặng. Nếu tìm thấy khoá khôi phục, khoá này sẽ được sử dụng ngay lập tức để tự động đăng nhập cho người dùng, bỏ qua mọi bước đăng nhập thủ công."
Trong suốt quá trình phát triển, các kỹ sư của Uber đã vượt qua một số thách thức trong quá trình triển khai, từ việc chọn điểm truy cập phù hợp đến việc quản lý vòng đời thông tin xác thực trên phần phụ trợ.
Chọn điểm truy cập Khôi phục thông tin đăng nhập
Các kỹ sư đã cân nhắc kỹ lưỡng giữa trải nghiệm người dùng hoàn toàn liền mạch và sự đơn giản trong quá trình triển khai khi chọn điểm truy cập Khôi phục thông tin xác thực để sử dụng cho việc khôi phục. Cuối cùng, họ ưu tiên một giải pháp mang lại sự cân bằng lý tưởng.
Thomás cho biết: "Quá trình này có thể diễn ra trong lúc khởi chạy ứng dụng hoặc trong nền khi khôi phục và thiết lập thiết bị, bằng cách sử dụng BackupAgent". "Điểm truy cập đăng nhập ở chế độ nền mang lại trải nghiệm liền mạch hơn cho người dùng, nhưng lại gây ra thách thức với các thao tác ở chế độ nền và yêu cầu sử dụng BackupAgent API, điều này sẽ làm tăng độ phức tạp trong một cơ sở mã lớn như của Uber." Họ quyết định triển khai tính năng này trong lần khởi chạy ứng dụng đầu tiên, nhanh hơn đáng kể so với việc đăng nhập thủ công.
Giải quyết các thách thức phía máy chủ
Một vài thách thức phía máy chủ đã phát sinh trong quá trình tích hợp với API WebAuthn phụ trợ, vì thiết kế của các API này giả định rằng việc xác minh người dùng luôn là bắt buộc và tất cả thông tin xác thực sẽ được liệt kê trong phần cài đặt tài khoản của người dùng; cả hai giả định này đều không áp dụng cho các khoá Khôi phục thông tin xác thực không do người dùng quản lý.
Nhóm Uber đã giải quyết vấn đề này bằng cách thực hiện một số thay đổi nhỏ đối với dịch vụ WebAuthn, tạo các loại thông tin xác thực mới để phân biệt khoá truy cập với Thông tin xác thực khôi phục và xử lý chúng một cách thích hợp.
Quản lý vòng đời của tính năng Khôi phục thông tin đăng nhập
Các kỹ sư của Uber đã gặp phải một số thách thức trong việc quản lý khoá thông tin xác thực trên phần phụ trợ, với sự hỗ trợ chuyên biệt của kỹ sư phần phụ trợ Ryan O’Laughlin:
- Ngăn chặn khoá mồ côi: Một thách thức lớn là xác định chiến lược xoá Khoá công khai đã đăng ký để ngăn chúng trở thành "mồ côi". Ví dụ: việc gỡ cài đặt ứng dụng sẽ xoá thông tin xác thực cục bộ, nhưng vì hành động này không báo hiệu cho phần phụ trợ nên sẽ để lại một khoá không dùng đến trên máy chủ.
- Cân bằng thời gian tồn tại của khoá: Khoá cần có "thời gian tồn tại" đủ dài để xử lý các trường hợp hiếm gặp. Ví dụ: nếu người dùng thực hiện quy trình sao lưu và khôi phục, sau đó đăng xuất theo cách thủ công khỏi thiết bị cũ, thì khoá sẽ bị xoá khỏi thiết bị cũ đó. Tuy nhiên, khoá phải vẫn hợp lệ trên máy chủ để thiết bị mới vẫn có thể sử dụng khoá đó.
- Hỗ trợ nhiều thiết bị: Vì người dùng có thể có nhiều thiết bị (và có thể bắt đầu sao lưu và khôi phục từ bất kỳ thiết bị nào trong số đó), nên phần phụ trợ cần hỗ trợ nhiều Thông tin xác thực khôi phục cho mỗi người dùng (một thông tin xác thực cho mỗi thiết bị).
Các kỹ sư của Uber đã giải quyết những thách thức này bằng cách thiết lập quy tắc xoá khoá phía máy chủ dựa trên việc đăng ký thông tin xác thực mới và mức sử dụng thông tin xác thực.
Tính năng này đã chuyển từ giai đoạn thiết kế sang giai đoạn phân phối trong quy trình phát triển và thử nghiệm nhanh chóng kéo dài hai tháng. Sau đó, thử nghiệm A/B kéo dài 5 tuần (thời gian để xác thực tính năng với người dùng) đã diễn ra suôn sẻ và mang lại kết quả không thể phủ nhận.
Ngăn người dùng bỏ ngang bằng tính năng Khôi phục thông tin đăng nhập
Bằng cách loại bỏ quy trình đăng nhập thủ công trên thiết bị mới, Uber đã giữ chân được những người dùng có thể đã bỏ qua quy trình đăng nhập trên thiết bị mới. Sự gia tăng về mức độ dễ dàng cho khách hàng được thể hiện qua nhiều điểm cải tiến. Mặc dù thoạt nhìn có vẻ nhỏ, nhưng tác động lại rất lớn trên quy mô cơ sở người dùng của Uber:
- Số lượt đăng nhập thủ công (OTP qua SMS, mật khẩu, đăng nhập bằng mạng xã hội) giảm 3,4%.
- Giảm 1,2% chi phí cho những lần đăng nhập cần có OTP qua SMS.
- Tỷ lệ truy cập của Uber tăng 0,575% (tỷ lệ phần trăm thiết bị truy cập thành công vào màn hình chính của ứng dụng).
- Số lượng thiết bị hoàn thành chuyến đi tăng 0,614%.
Hiện tại, tính năng Khôi phục thông tin đăng nhập đang trên đà trở thành một phần tiêu chuẩn trong ứng dụng Uber dành cho hành khách, với hơn 95% người dùng trong nhóm thử nghiệm đã đăng ký.
Trong quá trình thiết lập thiết bị mới, người dùng có thể khôi phục dữ liệu ứng dụng và thông tin đăng nhập từ một bản sao lưu. Sau khi chọn Uber để khôi phục và tiến trình nền hoàn tất, ứng dụng sẽ tự động đăng nhập người dùng trong lần khởi chạy đầu tiên của thiết bị mới.
Tác động thầm lặng nhưng to lớn của tính năng Khôi phục thông tin đăng nhập
Trong những tháng tới, Uber dự định mở rộng việc tích hợp tính năng Khôi phục thông tin đăng nhập. Dựa trên kết quả thử nghiệm, họ ước tính rằng thay đổi này sẽ giúp giảm 4 triệu lượt đăng nhập thủ công mỗi năm. Bằng cách đơn giản hoá quy trình truy cập vào ứng dụng và loại bỏ một điểm khó khăn chính, họ đang tích cực xây dựng một cơ sở khách hàng hài lòng và trung thành hơn, từng chuyến đi một.
Việc tích hợp RestoreCredentials của Google giúp chúng tôi mang đến trải nghiệm liền mạch, "chỉ cần dùng là được" mà người dùng mong đợi trên thiết bị mới", Matt Mueller, Nhà quản lý sản phẩm chính (Danh tính cốt lõi) tại Uber cho biết. "Điều này trực tiếp giúp tăng doanh thu một cách rõ rệt, chứng minh rằng việc giảm bớt rào cản khi đăng nhập là yếu tố then chốt để thu hút và giữ chân người dùng".
Bạn đã sẵn sàng nâng cao trải nghiệm đăng nhập vào ứng dụng của mình chưa?
Tìm hiểu cách hỗ trợ trải nghiệm đăng nhập liền mạch khi chuyển đổi thiết bị bằng tính năng Khôi phục thông tin đăng nhập và đọc thêm trong bài đăng trên blog. Trong phiên bản Canary mới nhất của Android Studio Otter, bạn có thể xác thực quá trình tích hợp của mình, vì các tính năng mới giúp mô phỏng cơ chế sao lưu và khôi phục.
Nếu mới sử dụng Trình quản lý thông tin xác thực, bạn có thể tham khảo tài liệu, lớp học lập trình và mẫu chính thức của chúng tôi để được trợ giúp về việc tích hợp
-
Nghiên cứu điển hìnhWhatsApp là nền tảng nhắn tin lớn nhất thế giới, phục vụ hàng tỷ người dùng trên toàn cầu. Đây là công cụ giao tiếp mặc định cho mọi người ở nhiều khu vực, giúp kết nối người dùng thông qua dịch vụ nhắn tin riêng tư, đáng tin cậy và bảo mật.
Niharika Arora, Tracy Agyemang, Mayank Jain • Đọc trong 8 phút -
Nghiên cứu điển hìnhTừ tin nổi bật và giải trí đến thể thao và chính trị, X là một ứng dụng mạng xã hội giúp gần 500 triệu người dùng trên toàn thế giới nắm bắt toàn bộ câu chuyện cùng tất cả bình luận trực tiếp.
Niharika Arora, Tracy Agyemang • Đọc trong 3 phút -
Nghiên cứu điển hìnhGrab là siêu ứng dụng hàng đầu Đông Nam Á, cung cấp dịch vụ giao hàng, di chuyển và dịch vụ tài chính cho hàng triệu người dùng tại 8 quốc gia thông qua một ứng dụng duy nhất.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • Thời gian đọc: 5 phút
Nhận thông tin chi tiết mới nhất về hoạt động phát triển Android trong hộp thư đến của bạn hằng tuần.