Nghiên cứu điển hình
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
Đọc trong 5 phút
Uber là công ty chia sẻ chuyến đi lớn nhất thế giới, đưa hàng triệu người từ nơi này đến nơi khác, đồng thời hỗ trợ dịch vụ giao đồ ăn, vận chuyển y tế và logistics vận tải hàng hoá. Tính đơn giản của quyền truy cập là yếu tố then chốt cho sự thành công của công ty. Khi chuyển sang một thiết bị mới, người dùng mong đợi 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 mật khẩu một lần dựa trên SMS. Việc thay đổi thiết bị thường xuyên này vừa là một thách thức, vừa là cơ hội để giữ chân người dùng một cách hiệu quả.
Để duy trì tính liên tục cho người dùng, các kỹ sư của Uber đã chuyển sang tính năng Khôi phục thông tin đăng nhập, một công cụ thiết yếu trong thời điểm 40% người dân ở Hoa Kỳ thay thế đ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 mẫu thử nghiệm mã, họ đã giới thiệu tính năng hỗ trợ Khôi phục thông tin đăng nhập trong ứng dụng Uber dành cho người đi xe. Để xác thực rằng việc khôi phục thông tin đăng nhập giúp loại bỏ sự phiền hà khi đăng nhập lại, nhóm Uber đã chạy một thử nghiệm A/B thành công 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 dự đoán trên cơ sở người dùng khổng lồ của Uber, ước tính rằng thay đổi này sẽ giúp loại bỏ 4 triệu lượt đăng nhập thủ công hằng năm.
Loại bỏ sự phiền hà 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 backup 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 sang thiết bị đích. Vì thông tin mã thông báo rất nhạy cảm, nên các giải pháp này chỉ được sử dụng ở một mức độ nhất định để điền sẵn các trường đăng nhập trên thiết bị đích và giảm bớt sự phiền hà trong quy trình đăng nhập. Khoá truy cập cũng được dùng để cung cấp phương thức đăng nhập an toàn và nhanh chóng, nhưng bản chất do người dùng khởi tạo của khoá truy cập sẽ 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.
"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 họ cần", Thomás Oliveira Horta, một kỹ sư Android tại Uber cho biết. Việc phát hiện ra rằng bạn đã đăng xuất ngay khi mở ứng dụng để yêu cầu một chuyến xe trên điện thoại Android mới có thể là một trải nghiệm khó chịu và gây khó chịu.
Với tính năng Khôi phục thông tin đăng nhập, các kỹ sư đã có thể khắc phục 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ã thông báo này sẽ được chuyển liền mạch và tự độ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 triển khai tiêu chuẩn. Quy 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 một cách an toàn cùng với dữ liệu của ứng dụng. Phương pháp được sắp xếp hợp lý này đảm bảo việc 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 thêm hoạt động đầu vào của người dùng hoặc 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 khoá này vào cơ sở dữ liệu, bạn phải phân biệt giữa chúng. Sự khác biệt này là 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à ẩn khỏi giao diện người dùng.
"Khi triển khai tính năng Khôi phục thông tin đăng nhập trên ứng dụng Uber dành cho người đi xe, chúng tôi bắt đầu thấy mức sử dụng nhất quán", Thomás nói. "Trung bình có 10.000 người dùng hằng ngày duy nhất đã đă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 một thiết bị mới. Chúng tôi dự kiến con số đó sẽ tăng gấp đôi sau khi mở rộng việc triển khai cho toàn bộ cơ sở người dùng của mình."
Những điểm cần lưu ý khi triển khai
"Việc tích hợp khá dễ dàng với một số điều chỉnh nhỏ ở phía Android bằng cách làm theo mã mẫu và tài liệu", Thomás nói. "Ứ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 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 API Khôi phục thông tin đăng nhập 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 thử truy xuất khoá truy cập tự độ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 người dùng, bỏ qua mọi quy trình đăng nhập thủ công."
Trong suốt quá trình phát triển, các kỹ sư của Uber đã gặp phải 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 đăng nhập 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 những điểm đánh đổi giữa trải nghiệm người dùng hoàn toàn liền mạch và tính đơn giản khi triển khai khi chọn điểm truy cập Khôi phục thông tin đăng nhập để sử dụng cho quá trình 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.
"Quá trình này có thể diễn ra trong quá trình Khởi chạy ứng dụng hoặc ở chế độ nền trong quá trình khôi phục và thiết lập thiết bị, bằng cách sử dụng BackupAgent", Thomás nói. "Điểm truy cập đăng nhập ở chế độ nền liền mạch hơn cho người dùng, nhưng điểm truy cập này gặp phải những thách thức với các hoạt động ở chế độ nền và yêu cầu sử dụng API BackupAgent. Đ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 quy trình đăng nhập thủ công.
Giải quyết các thách thức ở phía máy chủ
Một số thách thức ở phía máy chủ đã phát sinh trong quá trình tích hợp với các API WebAuthn ở phần phụ trợ, vì thiết kế của các API này giả định rằng người dùng sẽ luôn phải xác minh và tất cả thông tin đăng nhập sẽ được liệt kê trong phần cài đặt tài khoản của người dùng. Không có giả định nào trong số này hoạt động đối với các khoá Khôi phục thông tin đăng nhập 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 các thay đổi nhỏ đối với các dịch vụ WebAuthn, tạo các loại thông tin đăng nhập mới để phân biệt khoá truy cập với thông tin đăng nhập Khôi phục và xử lý các loại thông tin đăng nhập này một cách thích hợp.
Quản lý vòng đời 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ử thách trong việc quản lý các khoá thông tin đăng nhập trên phần phụ trợ, với sự hỗ trợ chuyên biệt từ kỹ sư phần phụ trợ Ryan O’Laughlin:
- Ngăn chặn các khoá bị bỏ rơi: Một thách thức đáng kể là xác định chiến lược xoá Khoá công khai đã đăng ký để ngăn các khoá này trở thành "bị bỏ rơi". Ví dụ: việc gỡ cài đặt ứng dụng sẽ xoá thông tin đăng nhập cục bộ, nhưng vì hành động này không báo hiệu cho phần phụ trợ, nên hành động này sẽ để lại một khoá không sử dụng trên máy chủ.
- Cân bằng thời gian tồn tại của khoá: Các khoá cần có "thời gian tồn tại" đủ dài để xử lý các trường hợp đặc biệt. Ví dụ: nếu người dùng thực hiện quá trình sao lưu và khôi phục, sau đó đăng xuất 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 cò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 quá trình 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 đăng nhập Khôi phục cho mỗi người dùng (một 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 các quy tắc xoá khoá ở phía máy chủ dựa trên việc đăng ký thông tin đăng nhập mới và việc sử dụng thông tin đăng nhập.
Tính năng này đã chuyển từ giai đoạn thiết kế sang giai đoạn phân phối trong một quy trình phát triển và thử nghiệm nhanh chóng kéo dài 2 tháng. Sau đó, một 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 chặn tình trạng người dùng rời bỏ ứng dụng 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 các thiết bị mới, Uber đã giữ chân được những người dùng có thể đã rời bỏ quy trình đăng nhập trên một thiết bị mới. Việc tăng cường sự dễ dàng cho khách hàng này được phản ánh trong một loạt cải tiến và mặc dù có vẻ không đáng kể, nhưng tác động lại rất lớn ở quy mô cơ sở người dùng của Uber:
- Giảm 3,4% số lượt đăng nhập thủ công (OTP qua SMS, mật khẩu, đăng nhập bằng tài khoản mạng xã hội).
- Giảm 1,2% chi phí cho các lượt đăng nhập yêu cầu OTP qua SMS.
- Tăng 0,575% tỷ lệ truy cập của Uber (% thiết bị truy cập thành công vào màn hình chính của ứng dụng).
- Tăng 0,614% số thiết bị hoàn tất chuyến đi.
Ngày nay, tính năng Khôi phục thông tin đăng nhập đang trên đường trở thành một phần tiêu chuẩn của ứng dụng Uber dành cho người đi xe, 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ừ bản sao lưu. Sau khi chọn Uber để khôi phục và quá trình ở chế độ nền hoàn tất, ứng dụng sẽ tự động đăng nhập người dùng vào lần khởi chạy đầu tiên của thiết bị mới.
Tác động vô hình 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 có kế hoạch 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ả của bản dùng thử, họ ước tính rằng thay đổi này sẽ giúp loại bỏ 4 triệu lượt đăng nhập thủ công hằng năm. Bằng cách đơn giản hoá quyền 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 xe một.
"Việc tích hợp tính năng Khôi phục thông tin đăng nhập của Google đã cho phép chúng tôi mang lại trải nghiệm liền mạch 'chỉ cần hoạt động' mà người dùng mong đợi trên một thiết bị mới", Matt Mueller, Trưởng nhóm quản lý sản phẩm (Nhận dạng cốt lõi) tại Uber cho biết. Điều này đã chuyển trực tiếp thành mức tăng doanh thu có thể đo lường được, chứng minh rằng việc giảm sự phiền hà khi đăng nhập là yếu tố then chốt để tăng mức độ tương tác của người dùng và giữ chân người dùng.
Bạn đã sẵn sàng nâng cao trải nghiệm đăng nhập của ứng dụng?
Tìm hiểu cách tạo điều kiện cho 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 bạn 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 chính thức, lớp học lập trình và mẫu của chúng tôi để được trợ giúp về việc tích hợp
Tiếp tục đọc
-
Nghiên cứu điển hình
Zoho, một bộ phần mềm toàn diện dựa trên đám mây tập trung vào tính bảo mật và trải nghiệm liền mạch, đã đạt được những cải tiến đáng kể bằng cách triển khai khoá truy cập trong ứng dụng OneAuth Android.
Niharika Arora, Joseph Lewis • Đọc trong 10 phút
-
Nghiên cứu điển hình
Từ tin tức nóng hổi và giải trí đến thể thao và chính trị, X là một ứng dụng mạng xã hội nhằm mục đích giúp gần 500 triệu người dùng trên toàn thế giới nắm bắt được toàn bộ câu chuyện với tất cả bình luận trực tiếp.
Niharika Arora • Đọc trong 3 phút
-
Nghiên cứu điển hình
Monzo là một ngân hàng kỹ thuật số ở Vương quốc Anh với 15 triệu khách hàng và đang phát triển. Khi ứng dụng mở rộng quy mô, nhóm kỹ thuật đã xác định thời gian khởi động ứng dụng là một lĩnh vực quan trọng cần cải thiện nhưng lo ngại rằng việc này sẽ đòi hỏi những thay đổi đáng kể đối với cơ sở mã của họ.
Ben Weiss • Đọc trong 2 phút
Nhận thông tin cập nhật
Nhận thông tin chi tiết mới nhất về quá trình phát triển Android được gửi vào hộp thư đến của bạn hằng tuần.