Nghiên cứu điển hình

Cách Uber giảm số lượt đăng nhập thủ công xuống 4 triệu lượt mỗi năm bằng Restore Credentials API

Đọc trong 5 phút

Uber là công ty đi chung xe 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ợ dịch vụ giao đồ ăn, vận chuyển trong lĩnh vực chăm sóc sức khoẻ và logistics vận chuyển hàng hoá. Tính đơn giản của quyền truy cập là yếu tố quan trọng để thành công; khi người dùng chuyển sang một thiết bị mới, họ 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 dựa trên SMS. Việc người dùng thường xuyên thay đổ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 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 sử dụng tính năng Khôi phục thông tin đăng nhập. Đây là một công cụ thiết yếu trong thời điểm 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 mã, họ đã ra mắt 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 dùng. Để xác thực rằng việc khôi phục thông tin đăng nhập giúp loại bỏ phiền hà khi đăng nhập lại, nhóm Uber đã tiến hành 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. Nếu tính trên cơ sở người dùng khổng lồ của Uber, thì ước tính mỗi năm có thể giảm 4 triệu lượt đăng nhập thủ công.

Giảm bớt phiền toái khi đăng nhập bằng tính năng Khôi phục thông tin đăng nhập

restore-credentials.gif

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 này đề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 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 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 thức đăng nhập nhanh 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 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.

Thomás Oliveira Horta, một 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 này sẽ hoạt động khi họ cần". "Việc phát hiện ra bạn đã đăng xuất ngay khi mở ứng dụng để yêu cầu 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 được vấn đề 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à âm thầm 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 thiết lập 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 tinh giản này đảm bảo việc chuyển tài khoản diễn ra đơ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 hoạt động đầu vào của người dùng 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 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 họ 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.

Thomás cho biết: "Kể từ khi áp dụng tính năng Khôi phục thông tin đăng nhập 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 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 một thiết bị mới. Chúng tôi dự kiến con số này 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".

image_thomas2.png

Những điểm cần lưu ý khi triển khai

Thomás cho biết: "Quá trình tích hợp diễn ra 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ẫutà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 tinh 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 xác thực 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 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 một cách âm thầm. 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 mà không cần đă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 của thông tin đăng nhập ở 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à sự đơ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 quy 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.

Thomás cho biết: "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". "Điểm truy cập đăng nhập ở chế độ nền mượt mà hơn cho người dùng, nhưng lại gây ra nhiều 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 đăng nhập thủ công.

Giải quyết các thách thức phía máy chủ 

Một số vấn đề ở phía máy chủ đã phát sinh trong quá trình tích hợp với WebAuthn API phụ trợ, vì thiết kế của các API này giả định rằng người dùng 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; cả hai giả định này đều không phù hợp 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 một số thay đổi nhỏ đối với các 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 thông tin đăng nhập khôi phục

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 ở phần phụ trợ, với sự hỗ trợ chuyên biệt của kỹ sư phụ trợ Ryan O’Laughlin:

  • Ngăn chặn khoá không có chủ sở hữu: 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 chúng trở thành "khoá không có chủ sở hữu". 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ì thao tác này không báo hiệu cho phần phụ trợ, nê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á: 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 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 hệ thống 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 thông tin đăng nhập 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 đã trải qua quy trình phát triển và kiểm thử nhanh chóng trong 2 tháng, từ giai đoạn thiết kế đến khi ra mắt. 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 người dùng bỏ ngang bằng cách sử dụng tính năng Khôi phục thông tin đăng nhập

Bằng cách loại bỏ các lượt đă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. Việc tăng cường sự thuận tiện 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ẻ không đáng kể, nhưng những điểm cải tiến này có tác động 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 những lần đăng nhập yêu cầu OTP qua SMS.
  • Tỷ lệ truy cập của Uber tăng 0,575% (tỷ lệ 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 thành chuyến đi. 

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 của ứng dụng Uber dành cho người dùng, với hơn 95% người dùng trong nhóm thử nghiệm đã đăng ký. 

uber-devices.png

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ạy nền hoàn tất, ứng dụng sẽ tự động đăng nhập người dùng vào lần đầu tiên khởi chạy trên thiết bị mới.

image_thomas.png

Tác động không thấy được nhưng rất 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ả của đợt 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 mỗi 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 đi một.

Matt Mueller, Nhà quản lý sản phẩm (Danh tính cốt lõi) tại Uber cho biế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 hoạt động" mà người dùng mong đợi trên một thiết bị mới". Điều này trực tiếp dẫn đến sự gia 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à tỷ lệ 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 chưa?

Tìm hiểu cách tạo 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 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ìnhcác mẫu chính thức của chúng tôi để được trợ giúp về việc tích hợp

Tác giả:

Tiếp tục đọc